問題タブ [fragment-lifecycle]
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 - コンテンツが動的にロードされる場合、ViewPager は最初のフラグメントを表示しません
Androidアプリケーションでフラグメントを使用してviewPagerを構築しているときに、非常に奇妙な問題に直面しています。レイアウトと 2 つのフラグメントを構築するアクティビティがあります。それぞれに RecyclerView が含まれており、そのコンテンツをサーバーから動的にロードします。フラグメントの静的コンテンツでテストしたところ、すべてうまく機能しましたが、テスト済みで機能している動的コンテンツ フラグメントに切り替えると、ViewPager は最初のフラグメントをロードせず、2 番目のフラグメントのみをロードします。それらを入れ替えても、viewPager は 2 番目のものだけをロードします。最初のタブには、常に白い空白のフィールドしか表示されません。どんな助けでも大歓迎です。
活動部分:
アクティビティのレイアウト:
フラグメントのレイアウト:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/contacts_list"
android:layout_width="fill_parent"
android:layout_height="match_parent" />
フラグメントの関連コード:
アダプターの部分:
android - フラグメントを含むビューページャー: onAttached がすべてのフラグメントに対して呼び出されていませんか?
ネットワーク操作を完了するために Robospice を使用しています。Robospice では、SpiceService
(android サービス クラスの拡張) をフラグメントのonAttach()
メソッドで開始することを推奨しています。
SpiceManager
他の解決策は、自分自身を取得しFragment.onAttach(...)
て解放する2番目のアプローチを使用することSpiceManager
ですFragment.onDetach()
https://github.com/stephanenicolas/robospice/wiki/Advanced-RoboSpice-Usages-and-FAQ
だから私はそうしようとしてきましたが、.onAttach()
でフラグメントを使用すると、フラグメントのメソッドがまったく呼び出されないことがありますViewpager
。この問題を示す github リポジトリを作成しました。
https://github.com/Winghin2517/ViewPagerFragmentSample
私の github リポジトリには、3 つのフラグメントと 1 つのビューページャーがあります。各フラグメントのメソッドが呼び出されたときにログを記録しonAttach
ていますが、結果が不安定です。アプリを閉じて再起動すると、次のことが時々発生します。
またはこれだけ:
サポート ライブラリを使用しているにもかかわらず、 API 23 に対して呼び出されたときpublic void onAttach(Context context)
(これは "onAttachedContext" としてログに表示されます) と 23 未満の API に対して呼び出されたとき(これは "onAttachedActivity" としてログに表示されます) の両方をログに記録しています。 public void onAttach(Activity activity)
23.
onAttach
アプリが起動するたびに3 つのフラグメントのすべてのメソッドが呼び出されることはめったにありません。つまり、ネットワーク操作用の robospice サービスも開始されず、アプリがハングしたままになることがあります。
アプリが開始時にすべてのフラグメントに対してすべての onAttach メソッドを呼び出すようにするにはどうすればよいですか?
android - まだ準備ができていない同じ Fragment に onActivityResult() データを渡す
私は を使用してFragment
新しいを開始するためにを使用しています。 ( ) メソッドで結果を取得しています。/さらにアクションを実行するために保存された結果。Activity
startActivityForResult()
(Bundle)
onActivityResult
onActivityResult
onResume
Bundle
Fragment's
onResume()
これを達成するためのさまざまな方法は何ですか。getArguments()/setArguments() を使用してみましたが、これは正しい方法ではないようです。
android - API 駆動型アプリ - ネストされたフラグメント - API 呼び出しを行う場所 onStart v/s onCreateView on onResume
私のアプリには、タブのコンテンツごとに TabLayout と 1 つのフラグメントを使用する単一のアクティビティがあります。これらのフラグメントの一部には、対応するサブフラグメント内にサブタブがあります。
これらの各フラグメントは、API 呼び出しに依存してビューをレンダリングします。これらのフラグメントでこれらの API 呼び出しを 1 回だけ行い、ビューをレンダリングする必要があります。ユーザーが別のタブに切り替えて戻ってきた場合、これらのフラグメントは、最初にレンダリングしたビューを表示するだけです (新しい API 呼び出しをトリガーする特別な条件がいくつかありますが、それらはまれであり、onResume で処理できると思います)。
これを実現するには、最初の API 呼び出しを行うのに最適な場所はどこですか? onCreateView ? またはonStartまたはonResumeまたはその他のライフサイクルメソッド?
android - onCreateView は、2 番目のアクティビティから戻った後に呼び出されます
以下のコードで DetailActivity を開始するところから MainActivityFragment があります。
その後、私の DetailActivity から、以下のコードで私の DetailActivityFragment を開始します:
また、MainActivityFragment 内でインスタンスの状態を保持しています。ただし、DetailActivityFragment から戻るボタンを押しているときに、MainActivityFragment の onCreateView メソッドが呼び出され、saveInstanceState メソッドが実行されず、savedInstanceState が null であるため、インスタンスの状態を復元できません。なぜこれが起こるのか、私は非常に興味があります。これは、同じロジックを持つ他のプロジェクトでは発生していません。誰かが私を助けてくれたら、とても感謝します。
android - Android アプリケーションの Fragment Life Cycle で onCreate() メソッドが正確に行うこと
Activity と Fragment の両方で onCreate() メソッドを混同しています。Fragment で onCreate() が行うことと、Activity と Fragment の onCreate() メソッドの違いは何ですか。自分で学習しているので助けてください。
ありがとう......
android - 「ViewPager.setCurrentItem()」メソッドを配置する場所
ネストされたFragments
[ Fragment
「MainFrag」と呼ばれる 1 つのメインと多くの子Fragments
] アプリは MainFrag を表示したり、他のフラグメントを表示したりできます。
私がやりたいのは、ユーザーがその MainFrag を表示することを選択するたびsetCurrentItem
に MainFrag のことです。そのため、それを配置しようとしましたが、これは、ユーザーが別のフラグメントを選択してから MainFrag を再選択したかのように、ユーザーが MainFrag を表示するのは初めてですは機能していませんViewPager
onCreateView
seCurrentItem
また、MainFrag の中に入れようとしましたonResume
が、必要に応じて機能しましたが、ユーザーがアプリをバックグラウンドに移動してから再度開くと、viewPager がスクロールし、これが必要ないという問題も発生します
では、正確にどこに置くことができますsetCurrentItem
か?
編集: MainFrag がそのうちの 1 つである 3 つのメイン フラグメント間を移動するためにナビゲーション メニューを使用しています。