問題タブ [fragment-tab-host]

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 投票する
1 に答える
277 参照

android - FragmentTabHost.setup()のコンテナとして使用されるビュー階層の外側のID?

サポートv4パッケージのサンプルプロジェクトを確認していて、何か奇妙なことに遭遇しました。

R.id.fragment1は、 FragmentNestingTabsSupport.javaでのセットアップ中にmTabHostのコンテナーとして使用されます。のビュー階層内にあるビューに対応するIDではないでしょうか。FragmentActivity

私が見るのは、そのビュー階層が単一ので構成されていることだけFragmentTabHostです。

ところで:fragment1はfragment_hide_show_support.xml、別のデモの一部である内部に存在します。

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

android - tabHostのActivityGroupでネストされたFragmentActivities

アプリケーションでFragmentActivitiesを使用しており、相互に切り替えることができるネストされたアクティビティを使用してTabHostを実装する必要があります。私はこの目的のためにActivityGroupを使用します:

私はこのように別のFragmentActivityを切り替えます:

別のアクティビティは正常に切り替わりましたが、すぐに初期状態に切り替わります。その理由は何でしょうか?

0 投票する
2 に答える
272 参照

android - フラグメントアプローチを使用してすべての画面にタブオプションを表示する

Androidミュージックプレーヤーアプリを作成しています。主な 4 つのオプションをタブとして表示する必要があります。ステーションアーティスト検索 もっと見る

タブ ホストとタブ アクティビティを使用して、同じタイプのアプリケーションを作成した経験があります。このアプリを開始する前に、フラグメント、フラグメント アクティビティのドキュメントを確認しました。

私の質問は、フラグメントを使用する場合、前の画面から開始されたすべての画面でタブオプションを表示できますか? 検索オプションを選択し、動的リストビューから曲を再生をクリックし、その後リストから曲の項目を選択すると、新しい音楽再生画面にもタブオプションを表示したいとします。これは設計上の問題であり、そのような場合に役立つのは経験だけであることを知っているので、助けてください。

私の質問は次のとおりです。すべての画面でタブ オプションを有効にするために、この動作を達成しましたか? デモはありますか?これを達成する正しい方法を教えてください。今回はandroid devのガイドライン通りに行きたいと思います。

注: 以前のアプリでは、setcontnetview を使用してタブ オプションを有効にし、レイアウトの可視オプションとカスタム アダプターを使用しました。

0 投票する
2 に答える
5307 参照

android - TabChange でフラグメント内のビューの状態を保存/復元する方法

重複した質問の可能性があります。しかし、私は私の問題の解決策を見つけることができません

3 つのタブを持つ TabHost があります。tabA、、tabBとしましょうtabCtabCボタンのテキストの変更、別のタブ (つまり、tabA または tabB) に切り替えたときの editText の変更など、多くのビューの変更を行いtabC、ビューのすべての変更を失ったことに戻ります。ビュー(ボタンとeditTexts)のすべての値と、すべてのビューをデフォルトのXMLファイル値にリセットします。私はこれが起こってほしくない。ビューの状態を保存する方法が欲しいだけです。タブの変更でこれを失ってはいけません。

このリンクを試しましたが失敗しました。

ここに私のコードがあります

編集 これが私のFrgmentActivityのコードです

このチュートリアルに従っています。

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

android - タブの変更時にフラグメントのビューの状態を保存/復元する方法

私はこのチュートリアルに従っています。私のアプリには 3 つのタブがあります。tab3 では、いくつかのビュー (ボタンや EditText スピナーなど) に変更を加えています。これらの変更に代わって、tab2 でいくつかのアクションを実行する必要があります。簡単に言うと、タブ 3 でいくつかの値を変更すると、タブ 2 で効果が発生します。私はこれを行う方法を知っています。tab2とを切り替えるときに、ビューの値が毎回デフォルト値にリセットされるようにしたいだけですtab3

  • 私の質問は、ビューの状態をどのように保存できるかということです。タブを再開するときに、以前に残したビューのデフォルトの外観を取得する必要があります。

もう1つ、 onCreateView() メソッドですべての作業を行っていることをお伝えします。これが正しい方法です。このような。

}

  • どの時点で状態を保存する必要があり、どの時点で保存された状態を取得する必要がありますか?

  • フラグメントのライフサイクルを簡単な言葉で実装する方法を教えてください。

私もsaveInstance()フラグメントの方法を試しました。しかし、呼び出されません。

ありがとう

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

android - タグ切り替え時にfragmenttabhost recreateview

私の最近のプロジェクトでは、FragmentTabHost の v4 サポート ライブラリを使用しています。

タブとフラグメントが初期化されると、タグにバインドされたフラグメントが作成され、レンダリングされます。そのライフサイクルは

onCreate ==> onCreateView ==> onActivityCreated

API からデータを取得する必要があるため、onActivityCreated メソッドをオーバーライドしました。

しかし、このタブに切り替えるたびに、この aysnTask が再度実行されます。切り替えが発生すると、フラグメントが次の呼び出しを行うためです。

onCreateView ==> onActivityCreated

データを再度更新したくありません。

確かに、FragmentTabHost を拡張して doTabChange() メソッドをオーバーライドし、フラグメントのアタッチ/デタッチ操作を非表示/表示に変更できます。

それで、他の解決策はありますか?

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

android - フラグメントの交換:前のビューはバックグラウンドでアクティブのままですか?

タブが変更されたときに1つのタブの表示を変更する必要があるアプリケーションに取り組んでいます。私はそれを次のように使用していますOnTabChangedListener。ビューを置き換えることができます。しかし、タブを他のタブに変更しても、前のビューはバックグラウンドでタップ可能なままですか?なんでそうなの?前面に新しいビューが表示されますが、前のビューのコントロールがあった画面の任意の場所をタップすると、機能が実行されます。問題がどこにあるのかわかりません。私を助けてください。ありがとう!

}

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

android - Fragmenttabhost のパフォーマンスが遅いですか?

を使用していv4 support libますFragmentTabHost

要件は、タブを別のタブと別のタブに切り替えるときに、呼び出していることです

毎回onCreateView() & onActivityCreated() 。

それが私のコードのパフォーマンスが遅い理由です。

それで、他の解決策はありますか?フラグメントタブでパフォーマンスを向上させる方法は?

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

android - 置き換えられた Fragment の OnCreate は Twice と呼ばれます。なんで?

Fragmentsから拡張されたアクティビティで、アプリケーションのタブとして使用していますFragmnetActivity。最初のフラグメントを追加でき、アプリケーションの設定に基づいてフラグメントを置き換えています。私がデバッグモードにいるとき、私はそれを観察し、非常に新しいfragmnetのonCreate他のメソッドが2回呼び出されています. overridenなんでそうなの?およびそれらが一度だけ呼び出されるように制限するにはどうすればよいですか。

以下は、アプリでフラグメントを使用する方法です。

どんな助けでも大歓迎です。ありがとう!

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

android - TabHost の新しいレイアウト

アプリケーションで tabHost を使用していますが、ビューの 1 つ (タブの 1 つに対応) に、別のアクティビティと別のレイアウトに移動する必要があるボタンがあります。問題は、この新しいレイアウトで引き続きタブにアクセスできるようにするにはどうすればよいかということです。または、この新しいレイアウトを FrameLayout 内にロードするにはどうすればよいですか?.

ここに私がやろうとしていることをアップロードしました:http://imageshack.us/photo/my-images/541/exampleu.png/

前もって感謝します。!

Pd: 私は Android の初心者です。TabActivity を使用せずに私の目的を達成するためのより良い方法があるかもしれません。私はどんな提案にもオープンです。

EDITED:提案されたように、フラグメントを使用することにしました。そして今、私は次のものを持っています:

  • AplicationActivity は FragmentActivity を拡張します
  • ClientActivity は Fragment を拡張します
  • SettingsActivity は Fragment を拡張します
  • DataClientActivity は Fragment を拡張します

および次のレイアウト:

  • activity_applicacion
  • activity_client
  • アクティビティ設定
  • activity_data_client

activity_aplicacion.xml には、TabHost、FrameLayout、TabWidget があり、これらからタブを使用して ClientActivity と SettingsActivity に移動できます。

ClientActivity には「new」というボタンがあり、このボタンを押すと DataClientActivity に移動します。したがって、ClientActivity には次のようなものがあります。

しかし、アプリを実行すると、次のエラーが発生しました。

05-04 21:55:04.780: E/AndroidRuntime(7515): java.lang.IllegalStateException: ビュー クラス android.widget.Button の onClick ハンドラのアクティビティ クラス com.nrAplicationActivity でメソッド onClickNew(View) が見つかりませんでしたid 'buttonNew'

だから私は今少し混乱しています。ボタンがある ClientActivity ではなく、AplicationActivity に onClickNew メソッドを含める必要があるのはなぜですか?

EDITED 2:私はこれに対する解決策を見つけました:

public class ClientActivity extends Fragment {

}

ClientActivity 内のボタンに onClick リスナーを登録する必要がありました。今、すべてが完璧に動作します!. Divya Motiwala に感謝します :) そして、このリンクに感謝します: http://thepseudocoder.wordpress.com/2011/10/04/android-tabs-the-fragment-way/#comment-410