問題タブ [android-nested-fragment]

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 投票する
4 に答える
14997 参照

android - Android: フラグメントをネストできますか?

Fragmentを別のレイアウトに貼り付けることは可能Fragmentですか? 誰もこれを試しましたか?

0 投票する
13 に答える
270479 参照

android - フラグメント内部のフラグメント

フラグメント内のフラグメントの操作に関してサポートが必要です。実際、戻るボタンを押すと問題が発生します。アプリケーションのメイン画面にはボタンがあり、各ボタンビューを押すと新しいフラグメントに置き換えられます(そしてそのフラグメントは別のフラグメント内に含まれます)、動的にフラグメントを追加/置換することは正常に機能します。再びボタン、例外が発生しました:

フラグメントまたは内部フラグメントがすでに追加されていることを意味し、それらを再度追加しようとしています。サポートのおかげで、フラグメント内のフラグメントを操作して問題なく前後に移動する方法を誰もが知っています。

MainActivity。フラグメントは動的に追加および置換されます。

レイアウトは次のとおりです:main.xml

私が自分の問題を解決しようとしたことを願っています。

0 投票する
6 に答える
141241 参照

android - フラグメント内のフラグメント

これが実際に Android API のバグなのかどうか疑問に思っています。

私は次のような設定をしています:

  1. 右側のペインにフラグメント #2 (検索画面) をロードするメニューです。
  2. 結果リストであるフラグメント #3 を含む検索画面です。
  3. 結果リストはいくつかの場所で使用されます (それ自体で機能する高レベルのフラグメントとしても使用されます)。

この機能は電話で完全に機能します (1 と 2 と 3 はActivityFragments)。

ただし、このコードを使用すると:

どこR.id.leftPaneR.id.rightPane<fragment>、水平方向の線形レイアウトにあります。

上記のコードは、常駐しているフラグメントを削除してから、新しいフラグメントに置き換えることを理解しています。素晴らしい...明らかに、このコードが2回目に実行されると、次の例外が発生するため、それは起こりません:

これは、FragmentNumber3 のコンテナーが複製され、一意の ID がなくなったためです。最初の Fragment は、新しいものが追加される前に破棄されていません (?) (つまり、置き換えられていないということです)。

これが可能かどうかを誰かに教えてもらえますか(この回答はそうではないことを示唆しています)、それともバグですか?

0 投票する
9 に答える
47806 参照

android - ViewPager 内の ViewPager

各ビューが別の ViewPager (2 つの項目) である ViewPager (3 つの項目) を作成したいと思います。次に、ユーザーは次のようにアイテムをスワイプします。

それはどのように可能でしょうか?

0 投票する
9 に答える
39180 参照

android - フラグメント内にフラグメントビューページャーを表示する

ViewPagerを含むフラグメントがあります。ViewPagerは、フラグメントのセットを含むアダプターに関連付けられています。

親フラグメントをロードするIllegalStateExceptionと、次のメッセージが表示されますjava.lang.IllegalStateException: Recursive entry to executePendingTransactions

いくつかの調査により、システムは別のフラグメント内のフラグメントを表示できないという結論に達しましたが、ViewPagerを使用してこれを正確に行うことができるという兆候があるようです(他のフラグメントで使用するViewPagerのバグ)。

実際、mPager.setAdapter(mAdapter)押されたときにViewPagerを呼び出すボタンを親フラグメントに追加すると、ViewPagerが正常に読み込まれます。これは理想的ではありません。

その場合、問題はフラグメントのライフサイクルに関連している必要があります。したがって、私の質問はこれです:他の誰かがこの問題を回避する方法を見つけましたか?もしそうなら、どのように?

フラグメントトランザクションが完了するまで、ViewPagerでのアダプターの設定を遅らせる方法はありますか?

これが私の親フラグメントコードです:

そしてアダプター:

0 投票する
14 に答える
38479 参照

android - FragmentPagerAdapterを使用したViewPagerのフラグメントは、2回目に表示されたときに空白になります

メインビューでさまざまなフラグメントを開くタブが下部にあるフラグメントインターフェイスがあります。

アイテムのリストである特定のフラグメントが1つあります。ユーザーがこのリストのアイテムの1つを選択すると、別のフラグメントが開きます。このフラグメントには、前のフラグメントのリスト内のすべてのアイテム間を水平方向にスクロールするビューページャーが含まれています。これはうまくいきます。

ビューページャーはFragmentPagerAdapterを使用してアイテムを表示します。

問題は、ユーザーがリスト内のアイテムを選択して表示し、タブバーのボタンを押してリストに戻り、別のアイテムを選択した場合に発生します。2回目にアイテムを選択すると、ビューページャーの代わりに空白の画面が表示されます。これが発生しても、LogCatでエラーは発生しません。

ビューページャーが初めて表示されるのはなぜですか?

FragmentPagerAdapter:

PagerFragment:

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

android - ViewPager 内のフラグメントの問題

一部のフラグメント内にあるビューページャーに問題があります。ビュー ページャーを操作するには、FragmentPagerAdapter を使用しています。そして 、アプリを実行しようとすると、java.lang.IllegalStateException: Recursive entry to executePendingTransactions例外が発生することを確認してください。

ほとんどの人は FragmentPagerAdapter を他のフラグメント内に持つことは不可能だと言っているので、この質問が無効である場合は申し訳ありません。誰かがこの問題とその解決策について新鮮なアイデアを持っていることを願っていました.

PS AsyncTask 内にアダプターを設定するというアドバイスがあります (必要に応じてこのケースを明確にすることができます) が、このソリューションにはそのようなフラグメント状態の復元に関連するいくつかのバグがあるため、私にとってはうまくいきます。

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

android - フラグメント内の FragmentPagerAdapter

複数の ViewPager に基づくデザインを実装するのに少し問題があります。

大まかに言えば、コンテンツとして FrameLayout だけを持つ FragmentActivity があります。表示したい3つの異なるフラグメントがあります。3 つすべてがフルスクリーンで、一度に使用できるのは 1 つだけです。

フラグメント 1 は、いくつかの TextView と ImageView を含む基本的なフラグメントです。フラグメント 2 には、いくつかの単純なフラグメントを供給する ViewPager と FragmentPagerAdapter があります。フラグメント 3 には ViewPager と FragmentPagerAdapter があり、いくつかの単純なフラグメント (フラグメント 2 とは異なります) をフィードします。

FragmentActivity onCreate() で FragmentManager を取得し、トランザクションを開始して FrameLayout にあるものを Fragment 2 の新しいインスタンスに置き換えます。

この時点で、すべてが期待どおりに機能しています。Fragment 2 の ViewPager は完全に機能します。

これで、FrameLayout の Fragment 2 を Fragment 3 の新しいインスタンスに置き換えるメニュー オプションができました。これも問題なく動作します。

別の置換トランザクションで Fragment 2 を FrameLayout に戻そうとすると、問題が発生します。上部に PagerIndicator が表示されますが、ページが空白です。

Fragment 2 の新しいインスタンスを作成して、replace トランザクションを呼び出してみました。また、新しいインスタンスを作成する代わりに、replace を呼び出すときに Fragments にタグを設定し、replace の前に findFragmentByTag チェックを追加しようとしました。2 回目の置換後、どちらも同じ結果の空白ページが表示されました。

参考までに、私の最初の設計は、ViewPager と ViewIndicator を持つ単純な FragmentActivity でした。上記の説明の Fragment 2 と Fragment 3 しかなく、それらを切り替えるメニュー オプションがありました。切り替えるには、2 つの異なる FragmentPagerAdapter を定義し、ViewPager.setAdapter を呼び出して、選択した FragmentPagerAdapter を設定しました。これは完全に機能していましたが、ViewPager をまったく使用しない新しいトップ レベルの Fragment が必要になりました。これが、ViewPagers を独自の Fragments に移動することにした理由です。私の考えは、フラグメントを FrameLayout に交換するだけだということです。

今は自分のコードがないので投稿できませんが、回答を容易にするために明日の質問にコードを追加します。

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

android - タブ内のViewPagerがアイテムを正しく表示しない

タブホストを設定するFragmentActivityがあります。各タブは、TabFragmentと呼ばれる単純なフラグメントです。TabFragmentにはViewPagerがあり、この場合はantonytによるInfiniteViewPagerです(ここで説明します:循環キュー/ラッピングとしてのViewPager)。

(主な)問題は次のとおりです。

  1. アプリケーションを起動します。2番目のタブをクリックします。最初のタブと同じものが表示されるはずのときは、空白の画面しかありません。右に数回スクロールすると、TextViewが表示されます。

  2. ViewPagersでフラグメントをスクロールし、タブを変更すると、最終的に停止とFCが発生し、明確な例外はスローされません。

これはフラグメントに関する私の最初の見解であり、私は告白しなければなりません、私は観察された振る舞いを理解していません。

ヒントをいただければ幸いです。

プロジェクト全体はここにあります。

コード:

TabHostを使用したFragmentActivity:

InfiniteViewPagerを含むTabFragment:

TabFragmentDとTabFragmentFはほぼ同じです。

TextViewを1つだけ含むDayFragment:

PagerAdapter:

InfiniteViewPagerとInfinitePageAdapterはantonytのgithubにあります。

tabs.xml:

tab.xml:

day.xml:

アップデート

CommonsWareが指摘しているように、Androidにはフラグメント内のフラグメントに問題があります。

tabs.xmlを次のように変更しました。

空のTabFragments(tab.xml)を作成しました:

そのため、タブの切り替えはスワイプとはほとんど関係ありません。

唯一の欠点は、タブを変更した後にViewPagerの現在の位置を0に設定しようとすると、非常に厄介な問題が発生したことです(アプリは例外なくクラッシュしました)。

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

android - ActionBarSherlock + タブ付きフラグメント + ViewPager インサイダー フラグメント

ActionBarSherlock を使用したタブ付きアプリケーションがあります。ActionBar のタブはそれぞれフラグメントです。フラグメントの 1 つには、(ImageView のバリアントを使用して) URL からの画像を含む多数のフラグメントを表示するビューページャーが含まれています。

タブを初めてクリックすると、全体がうまく機能します。画像を表示するページャーが表示されます。2 回目にタブをクリックしても (他のタブをクリックした後)、何も起こりません。ページャーは表示されず、画面は空白のままです (actionBar 以外)。以下にコードを添付します。FragmentPagerAdapter が作成されているようですが、2 回目のアイテムのページングではありません。

私は何を間違っていますか?