問題タブ [android-fragments]
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 - FragmentActivity は ActivityInstrumentationTestCase2 経由でテストできません
最近リリースされた Fragment サポート API を利用する Android アプリケーションに対して Android 単体テストを実行する際に問題があります。FragmentActivity に対してテストを実行すると、次のエラーがログに表示され、クラスの読み込みに失敗します。同一のクラスに対して実行されますが、Activity から派生したクラスに対して実行すると、テストは正常に機能します。どちらのクラスもアプリとして正しく動作します! つまり、単純に呼び出されると、レイアウトと機能の両方が正しく表示されます。サポート jar はビルド パスの一部であり、プロジェクトに含まれています。
私が抱えている問題は、フラグメントを利用する (および pre3.0 android をサポートする) 唯一の方法は FragmentActivity を利用することですが、それが自動テストを除外する場合、このライブラリは何が良いかということです。
問題を示すために作成したコードを次に示します。テスト ケースは、テスト対象のクラスをインスタンス化しようとするだけです。
私が作成した 2 つのクラスは次のとおりで、fragment_layout は空の LinearLayout です。
と
android - Android: バックスタックからすべての FragmentTransactions を削除します
1 つのタブで一連の FragmentTransactions をバック スタックに追加し、ユーザーが別のタブを選択したときにそれらをすべてバック スタックからクリアしたいと考えています。バックスタックから何かをクリアする方法が見つかりません。それらをポップオフする方法だけです。これらはフラグメントを返さないので、それらを閉じることができます。何か案は?
android - DialogFragmentでのFragmentTransactionの使用
そこで、この手法でダイアログとして表示されるDialogFragmentを作成しました
これで起動し、このポップアップ内でユーザーが操作したときに、別のフラグメントをこのダイアログにスライドさせたいと思います。FragmentTransaction.add()を介してこれを実行しようとしています。ここで、このレイアウトのコンテナーの1つのIDを指定します。この時点で私は次のようになります。
簡単なテストとして、ダイアログではなくメインのバッキングアクティビティ内のコンテナIDにプッシュしようとしましたが、問題なく機能しました。
DialogFragmentsとそのコンテナIDについて、FragmentTransactionsを許可しないものはありますか?
一時的なものとして、現在のDialogFragmentを非表示にしてこの新しいフラグメントを表示するようにトランザクションに指示しましたが、アニメーション/表示が少し不快なので、この問題を解決したいと思います。
ありがとう
android - 複数のアクティビティを単一のフラグメントに変換する
最近、アプリを更新して、ハニカム 3.0 の新しいフラグメント機能をサポートすることにしました。私のアプリケーションは現在、クリックされたリスト項目に応じて異なるアクティビティを開くリスト ビューで動作します。このチュートリアルのコードを適応させて、2 つのアクティビティのみで構成されるアプリを作成しましたが、クリックされたリスト項目に応じて、別のレイアウト xml を使用して 2 番目の「ビューアー」アクティビティが起動します。
残念ながら、すべての機能を備えた古いメソッドを呼び出す方法を理解できませんでした。古いアクティビティをすべてインポートしてからメソッドをビューアー アクティビティに呼び出す必要がありますか (これを正確に行う方法についてアドバイスが必要な場合があります)、またはすべてのメソッドを同じビューアー アクティビティに直接配置する必要があります (サイズを考慮してください)。これらのメソッド(ちなみに非常に大きい))。
すべてが前もって 2 つのアクティビティで機能するようになると、ここで示されているように、アプリを「フラグメント化」するという非常に単純なタスクになり ますもしそうなら、その方法を教えてください)
ありがとう
android - デバイス API レベルが 11 未満の DialogFragments
ハニカム プロジェクト/フォークを 1.6+ と後方互換性を持たせようとしています。
Google/Android が提供するドキュメントに基づいて、DialogFragment
ハニカムに最適な s からすべてのフラグメントを構築することにしました...ダイアログまたは「フルスクリーン」要素として何でも配置できる柔軟性が得られます。
互換性キットを組み込み、インポートとメソッド呼び出しをそこに移動しました。2.3 になったので、同じインテントを起動しようとしていますが、次の問題が発生します。
のドキュメントは、ダイアログ/ポップアップ機能が必要ない場合にDialogFragment
実行できることを示唆しています。Fragment
java - フラグメントをアクティビティ グループ内の別のフラグメントに置き換える
グループアクティビティ内にフラグメントがあり、それを別のフラグメントに置き換えたい:
アクティビティ グループを使用せずに別のプロジェクトとして実行すると正常に動作します。制御が getview() 内にあるため、log cat ではすべて正常に動作しますが、ビューが表示されず、例外も発生しません。ブックの詳細フラグメントをセクション詳細フラグメントに置き換えられます。
書籍詳細フラグメントの XML には ID book_description_fragment があり、セクション説明フラグメントの XML には ID section_description_fragment があります。
上記のコードはアイテムの onClick メソッドにあります。ユーザーが水平スクロール ビューでアイテムをタップすると、フラグメントが変化するようにしたいと考えています。
android - フラグメントを使用したカスタムタイトル
カスタムタイトル機能を使用するアプリがあります。私はそれをフラグメントAPIに移行しようとしています。結果のコードは、次のようになります。
どこCategoriesListActivity
に拡張しListFragment
ます。main_title.xml
これは:
HeaderFragment
は:
とmain_title_fragment.xml
は:
これを実行すると、これActivity
が膨らんだ後にクラッシュします。
ここではキャストの問題は見られません。フラグメントをカスタムタイトルに設定しようとした人はいますか?
android - では、Android 3.0 の Fragments の正確な利点は何ですか?
フラグメントを使用することの正確な利点を誰か説明してもらえますか? どのような場合にフラグメントを使用する必要がありますか?
私が理解していることについては、このフレームワーク:
既存のコードの再利用に役立ちます - Fragment に機能を実装すると、その機能が必要なときに、このフラグメントをアプリの複数の部分に表示するのが比較的簡単になります。
複数の画面サイズの処理に役立ちます - 巨大な画面を持つデバイスは一度に複数のフラグメントを表示できる場合があり、小さいデバイスの場合はフラグメントを別々のアクティビティで表示できます。
このフレームワークには他に何かありますか?
編集:
私は、3.0 タブレット用の大規模なプロジェクトで Fragments をかなり広範囲に使用してきました。私にとって最大の利点は、フラグメントを使用することで、単一のモノリシック アクティビティに含まれるロジックを複数の小さなフラグメントに分割できることでした。大きな画面は巨大なアクティビティを意味し、読みにくく、理解しにくく (特に新しいチーム メンバーにとって)、開発し、維持するのが困難です。フラグメントは確かにこの問題に役立ちました。
android - フラグメントとアクティビティの階層によるメニューの順序の違い。(onCreateOptionsMenu)
バックグラウンド
Android 3.0用に開発しているので、HostActivity
とのスーパークラスであるがNotebooksActivity
ありNoteActivity
ます。NotebooksActivity
フラグメントを含みますNotebooksFragment
。
にはHostActivity
、アクションバーのオプションメニューの右端に表示するメニューを含めます。つまり、のサブクラスのすべてのメニュー項目は、でHostActivity
追加したメニュー項目の左側に表示する必要がありますHostActivity
。
メニューのインフレHostActivity
:
問題
にメニュー項目を追加NoteActivity
すると、期待どおりの順序になります。
ただし、にメニュー項目を追加するとNotebooksFragment
、フラグメントの動作によりonCreateOptionsMenu
、の同じメソッドの後に呼び出され、のHostActivity
メニュー項目がの前に表示されます。HostActivity
NotebooksFragment
どうすれば希望のメニュー注文を達成できますか?
android - ListFragmentにHeaderViewを追加するのに最適な場所
リストにカスタムヘッダーを設定するのに問題があります。
カスタムアダプタを使用してListFragmentを作成しています。リストは正常に機能していますが、フラグメントのライフサイクルのどこにヘッダーをアタッチするかを把握しようとしています。
アダプターを設定する前に、ヘッダーを追加する必要があることはわかっています。
onActivityCreatedにヘッダーを追加しようとしましたが、フラグメントがバックスタックから戻るたびに呼び出され、アダプターもonActivityCreatedに設定したため、失敗します。
onCreateに追加しようとしましたが、ライフサイクルのその段階ではビュー階層を使用できません。
onCreateViewに追加しようとしましたが、膨張から返されたビューをListViewにキャストできませんでした。そのため、ヘッダーをバニラビューに追加できませんでした。
何かご意見は?