問題タブ [android-viewpager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
13371 参照

java - java.lang.IllegalArgumentException:オブザーバーがnullです

私のアプリの1人のユーザーがこのエラーを報告しました。それを修正する方法が何を意味するのか混乱しています。少しグーグルした後...まだ運がない。誰かがこれを以前に見た、またはそれを修正する方法を知っていますか?

そしてそれは私のPagerAdapterのこの関数から来ました:

0 投票する
1 に答える
692 参照

java - アダプタクラス:アクティビティにネストされていますか?

アプリケーションのViewPagerで使用されるPagerAdapterを作成しています。

私が作業している例では、アダプターがPagerViewActivityクラスのネストされたクラスとして使用されています。これにより、そのクラス内のすべてのメンバー変数にアクセスできるようになると思います。

これは例であるため、単純化のためだけであるという印象を受けます。アプリを作成する場合は、このAdapterクラスをアクティビティクラスから分割する必要があります。

これを行う場合、アダプターを呼び出すアクティビティからコンテキストを通過する必要がありますか?また、必要になるたびに新しいLayoutInflatorを作成しないようにするには、それへの参照を渡す必要がありますか?

ベストプラクティスまたはグッドプラクティスと見なされるものは何ですか?

よろしくお願いします、M

0 投票する
2 に答える
4081 参照

android - ViewPagerにキャストするときのClasscastException

互換性ライブラリの新しいViewPagerに基づいてアプリケーションを作成しようとしています。サンプルアプリケーションから行をコピーすると、次のようになります。

次のmain.xmlを使用します。

私は

ViewPagerにキャストした行で。なぜこれが起こっているのか誰かが知っていますか?

0 投票する
1 に答える
672 参照

android - Android: Fragments の複雑なビュー データを保持する

私のアプリケーションには、 FragmentViewPager を使用するFragmentActivityがあります。Fragments は、ListViews と Adapters を含むビューの非常に複雑な構造を持っています。FragmentViewPager は、見えないフラグメントを破棄し、ユーザーがスワイプして戻るとフラグメントを再作成するように見えます。これにより、すべてのコンテンツを含むリストとアダプターを保持するすべてのメンバー変数がクリアされるため、フラグメントが先頭に戻った場合、フラグメントは空になります。

私の質問は次のとおりです。これらのデータを保存するにはどうすればよいですか? 私が間違っていなければ、リストを保存して、アダプターが動作するコンテンツで再開する必要があります。いつ、どこに保存すればよいですか?

データを FragmentActivity またはアクティビティの外のヘルパー シングルトン クラスに保存するのは良い考えですか?

0 投票する
1 に答える
6372 参照

android - Android ViewPager + Webview、ClassCastException!ビューページャーにWebビューが必要

Webビューの水平方向の「リストビュー」を作成しようとしています。質問に対する以前の回答で示唆されているように、私は互換性パックのViewPagerライブラリを使用しています。

残念ながら、Webビューをビューコレクションに追加する場合は、

((ViewPager) collection).addView((View)mainContent,0);

キャストの問題が発生します。

09-07 20:45:30.690: ERROR/AndroidRuntime(8166): java.lang.ClassCastException: android.webkit.WebView cannot be cast to android.support.v4.view.ViewPager

これにより、アプリがクラッシュします。

今ではほとんど理にかなっています。さまざまなデータ型をキャストすると問題が発生しますが、私が持っていたViewPagerサンプルアプリでは、ビューであるViewPagerにTextViewをキャストしています...

ビューを実際に「保存」してアプリに表示する他の方法がわかりません。私は持っています

0 投票する
7 に答える
55123 参照

android - ページ フラグメント間の Android ViewPager パディング/マージン

Android マーケット/Google ミュージックでは、ViewPager.

これがどのように行われるか考えていますか?ビューが画面の幅全体を占める必要があるため、実際のフラグメント ビューにマージン/パディングを追加しても機能しません。「ギャップ」は、ViewPager をスワイプしたときにのみ表示されます。

0 投票する
0 に答える
453 参照

android - Androidで水平方向にスクロールするGridViewのようなビューページャーで画像の3X3配列を作成する方法

水平方向にスクロールする GridView のようなビューページャーで 3X3 配列の画像を作成する方法は?

0 投票する
3 に答える
150267 参照

android - ViewPager にアイテムを強制的に再インスタンス化させる方法

ViewPagerユーザーがビュー間をスワイプできるようにするために使用しています。ViewPagerビューが無効になった場合、または更新する必要がある場合に、ビューを強制的にリロード/再インスタンス化する方法はありますか? アダプターを呼び出そうとしましたが、これはメソッドを再度notifyDataSetChanged()呼び出しません。instantiateItem()

編集

ViewPager から拡張されたクラスとそのアダプター定義を次に示します。以下は、refresh()アイテムを強制的に更新したいときに呼び出すメソッドです。

0 投票する
3 に答える
24298 参照

android - Android ViewPager と ListView

私は Android の開発と開発全体に比較的慣れていません。ViewPager の構文/プロセスを把握するのに苦労しています。

ViewPager に実装したい ListView がいくつかあります。互換パックとすべてをロードしました。しかし、これを行う方法の完全な例を見たことがありません。

私は例を見ることで最もよく学びます。この種のものを実装したプロジェクトの例を誰かが投稿できる場合は、お知らせください。

問題は、アクティビティを起動しようとすると、この行で Null Pointer Exception が発生することです。

私はこれをすべて間違っていると思っています。ViewPager を使用しない場合は、両方のリストを取得してコンテンツを表示できます。だから私はリストがnullではないことを知っています...

編集:

以下の回答をくれた VenomM に感謝します! 以下は、VenomM の例を少し修正した、最終的に使用したコードです。

ViewPagerAdapter:

アレイアダプター:

0 投票する
10 に答える
73176 参照

android - ViewPager の一部として ListFragment のデータを更新する

Android で v4 互換の ViewPager を使用しています。私の FragmentActivity には、ViewPager のさまざまなページにさまざまな方法で表示される一連のデータがあります。これまでのところ、同じ ListFragment の 3 つのインスタンスしかありませんが、将来的には異なる ListFragment の 3 つのインスタンスを持つことになります。ViewPager は縦型の電話画面上にあり、リストは横に並んでいません。

ListFragment のボタンは、(FragmentActivity を介して) 別のページ全体のアクティビティを開始し、FragmentActivity がデータを返し、データを変更して保存し、ViewPager 内のすべてのビューを更新しようとします。私が立ち往生しているのはここです。

ご覧のとおり、最初に FragmentPagerAdapter 全体で notifyDataSetChanged を試みたところ、データが時々更新されることが示されましたが、IllegalStateException: Can't perform this action after onSaveInstanceState.

私の2番目の試みは、ListFragmentで更新関数を呼び出そうとしましたが、getItemのgetIdは0を返しました。私が試したドキュメントに従って

findFragmentById() または findFragmentByTag() を使用して FragmentManager から Fragment への参照を取得する

しかし、フラグメントのタグまたは ID がわかりません! ViewPager には android:id="@+id/viewpager" があり、ListFragment レイアウトの ListView には android:id="@android:id/list" がありますが、これらは役に立たないと思います。

a) ViewPager 全体を一度に安全に更新する (理想的には、ユーザーを以前のページに戻す) - ユーザーがビューの変更を確認しても問題ありません。または、できれば、b) 影響を受ける各 ListFragment で関数を呼び出して、ListView を手動で更新します。

どんな助けでもありがたく受け入れます!