問題タブ [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.

0 投票する
4 に答える
16518 参照

android - ViewPager でのフラグメント間の通信

私はこれをやろうとしています: http://android-er.blogspot.com/2012/06/communication-between-fragments-in.html FragmentStatePagerAdapter を使用していることを除いて

2 つのフラグメント ( FragmentAFragmentB )を持つアクティビティがあります。

FragmentA には edittext とボタンがあり、 FragmentB には textview があります

今私が欲しいのは、編集テキストに何かを入力してボタンをクリックするたびに、テキストビューに何かが表示されることだけです。

主な活動:

フラグメントA:

フラグメント B:

LogCat:

最初のフラグメントのボタンをクリックするたびに、アプリがクラッシュします。いったい何が問題なの?

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

android - Android - FragmentStatePagerAdapter: スワイプを手動でトリガーする/スワイプを無効にする

これは基本的に私が達成しようとしていることです: FragmentStatePagerAdapter があり、スワイプ機能を無効にし、ボタンを使用して前後に移動したい場合があります。

MyFragmentStatePagerAdapter の私のコードから切り取ったものは FragmentStatePagerAdapter を拡張します:

助言がありますか?スワイプを無効にして2つのボタンを使用するだけです...

どうも

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

android - FragmentStatePagerAdapter からフラグメントが消える

私のアプリではFragmentStatePagerAdapterViewPager.

私がバックグラウンドから来て、メモリが消去されたときを除いて、すべてうまくいっています。

その場合、一部のthe fragments have disappeared. 消えた破片は見えませんが、ホールスクリーンを取ります。何も見えません。

何が原因でしょうか?

ありがとう!

0 投票する
4 に答える
10526 参照

android - IllegalStateException: Fragment already added - Android OS 4.3 でのアプリ起動中

私の Android アプリには、4 つのタブをホストするタブ コントローラーを持つ単一のアクティビティがあり、各タブは Fragment で表されます。OS 4.03 を実行しているテスト デバイスでアプリを実行すると、アプリが動作し、さまざまなタブに移動できます。OS 4.3 を搭載したデバイスでアプリを実行すると、起動中にアプリがクラッシュし、IllegalStateException: Fragment already added が発生します。 : MyFirstTabFragment.

スタック トレースは次のとおりです。

java.lang.IllegalStateException: Fragment already added: MyFirstTabFragment{41866dc0 #0 id=0x7f080000 MyFirstTabFragment} at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1128) at android.app.BackStackRecord.run(BackStackRecord.java:616) android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435) で android.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:474) で android.support.v13.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:167) でandroid.support.v4.view.ViewPager.populate(ViewPager.java:1068) で android.support.v4.view.ViewPager.populate(ViewPager.java:914) で android.support.v4.view.ViewPager.onMeasure( ViewPager.java:1436) で android.view.View.measure(View.java:15848) で android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012) で android.widget.FrameLayout.onMeasure(FrameLayout.java:310) で android.view.View.measure(View.java:15848) で android.view.ViewGroup.measureChildWithMargins(ViewGroup) android.view.ViewGroup.measureChildWithMargins(ViewGroup. java:5012) android.widget.FrameLayout.onMeasure(FrameLayout.java:310) で com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2189) で android.view.View.measure (View.java:15848) android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1905) で android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1104) で android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1284) で android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004) で android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481) でandroid.view.Choreographer$CallbackRecord.run(Choreographer.java:749) で android.view.Choreographer.doCallbacks(Choreographer.java:562) で android.view.Choreographer.doFrame(Choreographer.java:532) で android.view .Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) で android.os.Handler.handleCallback(Handler.java:730) で android.os.Handler.dispatchMessage(Handler.java:92) で android.os.Looper. loop(Looper.java:137) で android.app.ActivityThread.main(ActivityThread.java:5103) で java.lang.reflect.Method.invokeNative(Native Method) で java.lang.reflect.Method.invoke(Method.java:525) で com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) で com.android.internal.os.ZygoteInit.main(ZygoteInit. java:553) dalvik.system.NativeStart.main (ネイティブ メソッド) で

この問題は、次のように FragmentStatePagerAdapter 拡張クラスの getItem() メソッド内の FragmentTransaction 内にフラグメントを追加しようとしたために発生したようです。

add() を呼び出す理由は、タグをフラグメントに関連付けて、後でそれらのフラグメントにアクセスし、タブが選択/選択解除されたときにそれらのフラグメント インスタンスでメソッドを呼び出すことができるようにするためです。

IllegalStateException に関するさまざまな投稿を検索し、add() の代わりに replace() を呼び出す、remove() を呼び出してから add() を呼び出す、new MyFirstTabFragment() の代わりに MyFirstTabFragment.instantiate() を呼び出すなど、さまざまな提案を試みましたが、これらのどれもありませんでした。変更により問題が修正されました。

フラグメントをタグに追加または置換しようとすると、ViewPager は現在フラグメントを追加するプロセスにあるため、この FragmentTransaction をプロセスの早い段階で実行している可能性があると思われます。このプロセスについてより良い洞察を持っている人はいますか? フラグメントにタグを付けるために、これらの個別の add() 呼び出しを行うことができるより良い場所はありますか?

提案をお寄せいただきありがとうございます!

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

android - フラグメントのデフォルト値をオンスワイプで復元

これについて話しているスレッドはたくさんありますが、私はすべてを試しましたが、うまくいかないようです。私の問題はちょっと単純です.5つのフラグメントページを持つビューページャーがあります.

このフラグメントのそれぞれに同じレイアウトの編集テキストが 1 つしかありません。問題は、次または前のページにスワイプして edittext に何かを書き込んだ場合、その edittext をリセットしたいということです。

例: PAGE1: edittext=2929 ---(スワイプ)--- PAGE2: edittext = 0 ----(スワイプ)--- PAGE1:edittext = 0

ただし、常に 2929 が表示されます。

私は自分のアプリでこれを行うために、テストプログラムでこれを試みています。

これは私のアダプターです

この私の断片

そして、ボタンリスナーと同じことをしたいのですが、編集テキストをリセットしますが、クリックする代わりに、スワイプジェスチャになります。

ありがとう、ゴンサロ・モウラ

編集:fragment_one1 の xml

ページャーを表示:

FragmentMangerからフラグメントを削除しようとしましたが、

また、tv.setOffscreenPageLimit(limit);、FragmentStatePagerAdapter と FragmentPagerAdapter を試しました。イベント onDetach()、onDestroy() などを使用してフラグメントを破棄するため、状態があります。フラグメントのコードを見れば、私のメソッド onDetach を見ることができます。 ()、notifydatasetchanged、新しいアダプターの設定。

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

android - PagerAdapter getCount() が何度も呼び出される

を使用してFragmentStatePagerAdapterいます。何らかの理由で、フラグメントが表示される前に getCount() メソッドが何度も呼び出されています...これは正常な動作ですか?

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

android - FragmentStatePagerAdapter getCount() は呼び出されません

アプリで FragmentStatePagerAdapter を使用しています。私の問題は、notifyDataSetChanged() を実行しているときに、getItem() ではなく getCount() のみを呼び出していることです。getCount は 0 を返しません。これは私の FragmentStatePagerAdapter です。

pagerAdapter.notifyDataSetChanged();getCount() だけが呼び出され、その後は呼び出されないのはどうしてgetItem(int position)でしょうか? ありがとう!