問題タブ [fragmenttransaction]
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 - Android: ダイアログ フラグメントとバックスタックの問題
したがって、次のフラグメントがあるとしましょう。
Fragment1 Fragment2 DialogFragment Fragment3 Fragment4
次のフラグメントに移動するとします。各フラグメントはバック スタックに追加されます。
[戻る] ボタンをクリックすると、通常はFragment3に移動するはずですが、代わりにDialogFragmentが表示されます。
私が使用したフラグメントトランザクションは次のとおりです。
フラグメント 1 -> フラグメント 2
Fragment2 -> DialogFragment
ダイアログフラグメント -> Fragment3
Fragment3 -> Fragment4
ここでも問題は、Fragment4 で [戻る] ボタンをクリックすると、Fragment3 ではなく DialogFragment が表示されることです。
android - FragmentPagerAdapter の 1 つのタブで FragmentTransaction をコミットする
FragmentPageAdapter
アプリ内に複数のタブを使用しています。これらのタブの 1つは、 を使用しListFragment
て別のフラグメントに置き換えられることになっているです。onItemClick
FragmentTransaction
を内に追加するListFragment
と、変更置換は完全に機能しますが、 を使用してこれを行う方法がわかりません。FrameLayout
Activity
FragmentPagerAdapter
より良い説明は次のとおりです。
フラグメントリストビューから1つのアイテムをクリックした後、次のように置き換える必要があります
を使ってみ.replace(((ViewGroup)getView().getParent()).getId(), newFragment).commit()
ましたが、うまくいきません。
android - FragmentTransaction.replace は、コンテナー内の最初の Fragment のみを置き換えます
1 つのトランザクションで 2 つのフラグメント (A と B など) を 1 つのコンテナーに追加しました。ドキュメントによると、replace は、指定されたコンテナーからすべてのフラグメントを削除してから、新しいフラグメントを追加する必要があります。代わりに、最初のものだけを置き換えます。したがって、B フラグメントと C フラグメントになります。これは私をとても混乱させます。それはバグですか、それとも何ですか?
単一のコンテナーに複数のフラグメントを追加することは悪い習慣と見なされることは既に知っています。でもとにかく気になる。
更新: 前にそれを見つけた: http://code.google.com/p/android/issues/detail?id=28452
android - 空白を残してフラグメントを非表示
私は3つのコンテナ(LinearLayoutも)を持つLinearLayoutを持っていますが、これらにはweight=1
. そのレイアウトは次のとおりです。
これらのコンテナのそれぞれに、1 つのフラグメントを追加します。
したがって、これらは次のように配置されています。
ボタンをクリックすると、最初にコンテナと一緒にフラグメントを非表示にし、の右側にある新しいフラグメントを表示しfragment3
ます。したがって、次のようなものがあります。
ボタンをクリックすると、これを使用してフラグメントを非表示にします。
コンテナと一緒にフラグメントを非表示にしますが、表示される画面は次のようになります。
ここでempty
は、完全に空、フラグメント、コンテナー、何もない、ただの空のスペースを意味します。
それで、私の質問は、そこに空白を残さずにフラグメントを非表示にする方法ですか?
java - フラグメントを動的に作成する方法は?
2 つのフラグメントがあります (そのうちの 1 つは 1 つの編集テキストと 1 つのボタンを持ち、もう 1 つは 1 つのリストビューのみを持ちます) フラグメント トランザクションを使用して動的に作成したいと考えています。しかし、それをしようとすると、アプリが起動しません。私のコードで何が間違っていますか?
AddToDoFragment.java
}
MainActivity.java
ToDoListFragment.java
}
activity_main.xml
LogCat
- 10-29 17:21:59.783: D/AndroidRuntime(788): VM をシャットダウンしています
- 10-29 17:21:59.783: W/dalvikvm(788): threadid=1: キャッチされない例外で終了するスレッド (group=0x414c4700)
- 10-29 17:21:59.863: E/AndroidRuntime(788): 致命的な例外: メイン
- 10-29 17:21:59.863: E/AndroidRuntime(788): java.lang.RuntimeException: アクティビティ ComponentInfo を開始できません {com.example.todolistwithdynamicfragments/com.example.todolistwithdynamicfragments.MainActivity}: java.lang.NullPointerException
- 10-29 17:21:59.863: E/AndroidRuntime(788): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) で
- 10-29 17:21:59.863: E/AndroidRuntime(788): android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
- 10-29 17:21:59.863: E/AndroidRuntime(788): android.app.ActivityThread.access$600(ActivityThread.java:141)
- 10-29 17:21:59.863: E/AndroidRuntime(788): android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) で
- 10-29 17:21:59.863: E/AndroidRuntime(788): android.os.Handler.dispatchMessage(Handler.java:99) で
- 10-29 17:21:59.863: E/AndroidRuntime(788): android.os.Looper.loop(Looper.java:137)
- 10-29 17:21:59.863: E/AndroidRuntime(788): android.app.ActivityThread.main(ActivityThread.java:5103)
- 10-29 17:21:59.863: E/AndroidRuntime(788): java.lang.reflect.Method.invokeNative(ネイティブメソッド)
- 10-29 17:21:59.863: E/AndroidRuntime(788): java.lang.reflect.Method.invoke(Method.java:525)
- 10-29 17:21:59.863: E/AndroidRuntime(788): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) で
- 10-29 17:21:59.863: E/AndroidRuntime(788): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
- 10-29 17:21:59.863: E/AndroidRuntime(788): dalvik.system.NativeStart.main(ネイティブメソッド)
- 10-29 17:21:59.863: E/AndroidRuntime(788): 原因: java.lang.NullPointerException
- 10-29 17:21:59.863: E/AndroidRuntime(788): com.example.todolistwithdynamicfragments.MainActivity.onCreate(MainActivity.java:40)
- 10-29 17:21:59.863: E/AndroidRuntime(788): android.app.Activity.performCreate(Activity.java:5133)
- 10-29 17:21:59.863: E/AndroidRuntime(788): android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1087) で
- 10-29 17:21:59.863: E/AndroidRuntime(788): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
- 10-29 17:21:59.863: E/AndroidRuntime(788): ... 11 もっと見る
- 10-29 17:22:27.032: I/Process(788): シグナルを送信しています。PID: 788 SIG: 9