問題タブ [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.
java - FragmentTransaction での add().addToBackStack()、add().detach()、および replace().addToBackStack() の使用の違いは何ですか?
Android docsの FragmentTransaction 項目では、メソッドは、現在のビューに追加されたすべてのフラグメントに対してreplace()
メソッドを呼び出してからメソッドを呼び出すことと同じであると説明されています。この場合、前のフラグメントを復元するには、 を使用できます。これは、トランザクションの状態がまだフラグメント マネージャーによって管理されており、スタックからポップしたときにその操作を元に戻すことを意味します。remove()
add()
addBackToStack()
一方、 を使用してトランザクションを実装するadd()
とadd().addBackToStack()
、 を使用するだけでなく、detach()
メソッドを使用して を使用してフラグメントを回復できます。attach()
これらは と同じ動作をしaddBackToStack()
ます。
では、これらのシナリオの舞台裏での違いは何でしょうか?
android - 終了アニメーションが機能していません。FragmentTransactionカスタムアニメーションは非表示には機能しません
画面の一部を占めるフラグメントを表示するには、show/hideを使用します。何らかの理由で、フラグメントが表示されるとslide_in_left
アニメーションが再生されますが、フラグメントが非表示になっているとアニメーションがなく、フラグメントが消えるだけです。との両方にslide_in_left
アニメーションを使用してみましたが、これは役に立ちませんでした。コードをサポートパッケージにトレースすると、アニメーションが作成され、それを表示するためのコードが実行されます。(私は呼び出しを追跡しました)exit
enter
.hide
念のため、ここにslide_out_left
アニメーションのxmlがあります
編集:my_fragment
問題は、Webビューを含む別のフラグメントと画面幅を共有
しているという事実に関係している可能性があります。my_fragmentに対して.showを実行すると、.showが表示され、水平線形レイアウト内でスペースを共有します(2つのフラグメントのそれぞれが占める画面幅は、重みパラメーターによって決まります)。
android - 戻るボタンが押されたときにフラグメントCをフラグメントAに置き換える方法は?
私のシナリオ: アクティビティ 1 は、フラグメント A-> B-> C で構成されています。すべてのフラグメントは、次のコードを使用して追加されます。
今、フラグメント C から、フラグメント A に直接戻りたいと思います。したがって、ft.addToBackStack(TAG)
フラグメント C を追加しながらコメントしました。そのため、CI から [戻る] ボタンを押すと、画面に直接フラグメント A が表示されます。
ただし、フラグメント C は A に置き換えられません。実際、両方のフラグメントが表示されます。この問題を解決するにはどうすればよいですか?
android - Android FragmentTransaction.addToBackStack の混乱
私は Fragments を勉強していて、微分FragmentTransaction.replace(id, fragment, tag)
とFragmentTransaction.addToBackStack(tag)
呼び出しについて少し混乱しました。現在のフラグメントがFragmentAで、 FragmentBをロードしたとしましょう。将来、 FragmentAをロードする必要があるときに、再ロードする必要はありません。古いものを古い状態でロードするだけです。次のコード セグメントを使用しました。
今、私は混乱しています。文字列タグをどこに追加すればよいですか? replace()
コール内またはコール内または両方でaddToBackStack()
? この 2 つのタグの場所の違いを説明できますか?
android - 戻るボタンを押した後に以前の ListFragment のリストビューを再作成する方法
ナビゲーション構造を含むリストビューを含む ListFragment があります。リストの項目を選択すると、次のナビゲーション階層ステージが表示されます。等々。
次の階層ステージは、新しいフラグメントによって作成され (古いフラグメントを削除し、addToBackStack を使用してフラグメント トランザクションを介して同じフラグメントを新しく追加します)、新しいリストビューの arrayadapter が次のナビゲーション階層の項目に更新されます。それはかなりうまくいきます。
ユーザーが戻るボタンを使用して戻ることができるようにしたいと考えています。そして、ここから私の問題を始めます。リストビューを保存する方法がわからないので、戻るボタンを使用した後に再作成できます。
onSaveInstanceState を使用するのは良い考えだと思いました。ただし、トランザクションがコミットされたときに onSaveInstanceState は呼び出されません。メソッドに Log.d("..","...) を配置して確認しました。呼び出されていません。ビューとその逆.しかし、それは私の問題の助けにはなりません)。
では、リストビューの要素を保存し、戻るボタンを使用して元のフラグメントが作成された後にリストビューを再作成するために戻すのに最適なアイデアは何でしょうか? すべての項目は、ListAdapter にバインドされた ArrayList に格納される文字列です。
ここに私のコード。リストビューのアイテムをクリックして、親アクティビティのメソッドを呼び出すインターフェイスを実装しました。このメソッドでは、まずメソッドを呼び出して、既存の ArrayList (navigationsItems) を次のナビゲーション ステージのコンテンツである新しい項目で埋めます。
私のArrayAdapterのコード:
このメソッドでは、最初に次のナビゲーション ステージの項目で ArrayList (navigationsItems) を埋めるメソッドを呼び出します。
次に、新しい ListFragment をロードし、新しい ArrayAdapter をそれにバインドするメソッドを呼び出します。
前述のように、順方向のナビゲーションは問題ありません。しかし、たとえば 2 番目のナビゲーション ステージで [戻る] ボタンを押すと、以前の ListFragment が読み込まれます (Log.d("..."."...)-ListFragment の onCreatView() のメッセージで検証)。その中にあった以前のリストビューは作成されません。
現在、新しいアプローチに取り組んでいます。リスト内の項目をクリックすると、現在の ListFragment への参照とともに、現在のリストがベクター ベースのスタックに書き込まれます。次に、「onBackPressed()」メソッドで戻るボタンが押されたことをキャッチします。ボタンが押されると、既に述べたメソッド (上記を参照) を呼び出し、アイテム データをスタックからリストに書き戻し、格納された参照を介してフォーム ListFragmt を呼び出し、更新された ArrayAdapter をそれにバインドします。これは実際に進行中の作業です。終了したら、このアプローチの結果を書きます。
android - ApiDemos サンプルの FragmentLayout クラスの奇妙な FragmentTransaction
申し訳ありませんが、この質問は、 ApiDemo サンプル コードにアクセスしてEclipseで作業している方に向けたものです。
具体的には、FragmentLayoutというサンプルに基づいてフラグメント アクティビティを作成しようとしています。
次のコードは私にとって問題があります (完全なコードは ApiDemo FragmentLayout.java、ShowDetails()メソッドにあります):
私が持っている2つの質問:
index == 0
とはどう違いindex != 0
ますか?リソース R.id_a_item (検索後、すべての ApiDemos でのみ出現) は、ある種のメニュー ショートカット リソースに属していますが、ここで使用されている理由はまったく不明です。
android.developers ガイドでは、このコードについて説明していません。
android - フラグメント ビューを含む Android アクション バー タブが重なる
マイ タブ :
private void tabSherlock() { actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
タブリスナー:
1 つのタブには、アイテム クリックのリスト ビューが含まれており、詳細フラグメントに移動します。{
別のタブビューをタップすると、詳細フラグメントからオーバーラップします 誰でも助けてもらえますか よろしくお願いします。
android - 置き換える前に、どのフラグメントがフレームレイアウトにロードされているかを確認してください
フラグメントを追加する前に、フラグメントが既に FrameLayout にロードされているかどうかを確認することはできますか?
android - フラグメント内の ViewPager はすべてのフラグメントを表示できず、2 つのフラグメントが機能し、1 つのフラグメントが空白です
構造はFragment [ViewPager [3 Fragment]]で、ビューページャーを初めて開始するとき(内部に3つのフラグメントがあります)、完全に機能しますが、別のフラグメントをそれに置き換えて代わりに置き換えると、フラグメント1とフラグメント3レビューできますが、フラグメント 2 は空白です!!! 私はアンドロイド開発の新しい手であり、長い間この問題に夢中です!!!
私はアンドロイド開発の新しい手です