問題タブ [fragmentstatepageradapter]
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.
android - FragmentStatePagerAdapter が null ビューを返す
FragmentStatePagerAdapter
ViewPager 内にフラグメントを表示するためにa を使用しています。これらのフラグメントはすべて同じレイアウト コンテナー (a FrameLayout
) に従いますが、その数は実行時に変更可能であるため、それらすべてをList
フラグメントの静的に配置して渡します。そのリストをFragmentStatePagerAdapter
(最初はコンストラクターを介して、その後は毎回リストとを更新するだけですnotifydatasetchanged
):
これはFragment List
、実行時に次の方法で作成する方法です。
新しいフラグメントをにコミットするには:ViewPager
この段階ではすべて問題ありません。指定された数のフラグメントをナビゲートすると、各フラグメントにフラグメントのコンテナがあるため、効率的にナビゲートできますMyFragment
。
しかし、フラグメントのビューにアクセスしようとすると、最初の2 つのフラグメントのみFrameLayout
に従って、指定されたビュー ()が返され、その後、返されたビューをループして出力しようとしました:MyFragment
null
mpa
これは私が得たものです:
android - FragmentStatePagerAdapter からのフラグメントへのアクセス
私は次の単純なものを使用していますFragmentStatePagerAdapter
。断片の 1 つへの参照を取得したいのですが、断片が破棄されている可能性があることに注意してください。
この質問を見ました。2 番目の回答では、呼び出しFragmentStatePagerAdapter.instatiateItem
たときにフラグメントへの参照が既に存在する場合、getItem()
再び呼び出されることはありません。ここでソースコードを見て、私の理解では、これが実際に起こっていることです。
しかし、私は疑問に思っていました、私は次のようなことができますか?それは簡単に思えますが、どこでも使用されているのを見たことがないという事実は、私が見ることができない何かが本当に間違っているのではないかと疑っています.
基本的に私の質問は、次のようなものを使用してフラグメントにアクセスする際のエラーは何ですか?
そして、それを取得するには、 に電話しますgetItem(position)
。
fragmentstatepageradapter - FragmentStatePagerAdapter JazzyViewPager トランジションの使用が機能しない
問題は、トランジションが機能しないことですが、アプリ全体が正常に機能しています。機能していないのはトランジション効果だけです。私はすでにそれらすべてを試しましたが、うまくいきません。コードにもエラーはありません。何が間違っているのかわからないので、助けてください。これも初めてのアプリなのでよろしくお願いします。:) pageradapter に instantiateitem を含めませんでした。これを行うと nullpointerexception が発生するためです。:/
activity_main xml
<com.jfeinstein.jazzyviewpager.JazzyViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:app1="http://schemas.android.com/apk/res/com.eight.yamjay"
android:id="@+id/jazzy_pager"
app1:style="cubeout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
主な活動:
public class MainActivity extends FragmentActivity {
}
FragmentStatePagerAdapter:
public class FragmentAdapter extends FragmentStatePagerAdapter{
}
フラグメント 1:
public class Fragment1 extends Fragment {
}
android - ViewPager、FragmentStatePagerAdapter、API 呼び出しを使用したエスプレッソ
異なるページ (フラグメント) を切り替えるためのタブを持つ単一の ViewPager で構成されるアクティビティ MainActivity があります。最初のページ (FragmentA、onResume()) で、API 呼び出しを実行してデータを取得し、そのページ onResume() のビューを設定します。このページは、すべてのアクションが発生する私のホームページと見なすことができます。
AsyncTask を使用している場合、Espresso は、MainActivity を開始すると、最初のページ フラグメントから行われた API 呼び出しが完了するまで自動的に待機する必要がありますか? または、この状況で IdlingResource/Sleep を実装する必要がありますか? FragmentStatePagerAdapters と ViewPagers のスレッド化がどのように機能するかはわかりません。
これはこれをテストする最良の方法ですか?フラグメントではなく MainActivity から API 呼び出しなどを行うためにコードをリファクタリングする必要がありますか?
android - Android FragmentStatePagerAdapter が中間フラグメントをリロードすると空白の画面を返す
FragmentStatePagerAdapter と ViewPager を使用して 4 つのタブを持つアプリを作成しようとしています。
最初にアプリを実行し、タブを順番に (0 から 3 に) 選択するとすべてがうまくいき、その後 (3 から 0) に戻る方法を実行しようとすると、タブ 1 に空白の画面が表示されます。タブ2を選択すると、同様に空白になります。タブ0に移動して、タブ2を元に戻し、タブ1を元に戻すこともありますが、シーケンスがわかりません...
私はそれが混乱していることを知っています...問題は、タブ1が失敗するために使用され、タブ2が時々失敗し、タブ0と3が常に正常に動作することです。フラグメントの位置を交換すると、すべて同じですが、フラグメントコードとは関係ないと思われるものもあります...
logcat にエラーは表示されません。フラグメントをデバッグすると、すべてが正常に行われていることがわかります...
私は何日か運が悪かったので修正しようとしました(明らかに...)、getItemPosition()をオーバーライドしてPOSITION_NONEを返そうとしました、ここのように自分のFragmentStatePagerAdapterを作成しようとしました.net.nz/blog/2014/02/20/a-bug-in-and-a-fix-for-the-way-fragmentstatepageradapter-handles-fragment-restoration/ しかし何も...私にはうまくいきませんでした。
いくつかのコード: メイン クラス
アダプタ
ありがとう。
更新:私のフラグメントは分離されたクラスにあり、それらは静的ではありません。それは重要ですか? 私が気付いたもう1つのことは、タブに触れた後にフラグメントを破壊しているように見えることです.ゆっくりスワイプするとフラグメントが表示されますが、突然すべてが消えます.
android - フラグメントから FragmentStatePagerAdapter を呼び出す方法
リストフラグメントと詳細フラグメントの 2 つのフラグメントがあります。リストフラグメントの項目をクリックすると、詳細フラグメントにリダイレクトされます。詳細ページでは、ビューページャーを使用する必要があります。ページャーアダプターを使用して動作しました。しかし、フラグメント状態のページャー アダプターを使用する必要があります。フラグメントからこのアダプターを呼び出す方法。私はそれを使用しようとしました...しかし、それは空のコンテナを返します。
任意の提案をいただければ幸いです..Adavanceに感謝します...