0

みなさん、簡単な質問です..

現在、4 つのタブを持つ fragmenttabhost があり、アプリケーションの起動時にデフォルトでタブ 0 が読み込まれます。これは理にかなっています。ただし、特定のタブがタッチされるまで、タブをロードしたくありません。単純に、tab0 は、触れない限り実行する必要のないかなりの量の作業を行うためです。

バンドルに true/false を渡して表示するかどうかについては、次のように説明します。

mTabHost.addTab(createTab("tab1", "test1", R.drawable.ico1), TabClass1.class, false); mTabHost.addTab(createTab("tab2", "test2", R.drawable.ico2), TabClass2.class, false); mTabHost.addTab(createTab("tab3", "test3", R.drawable.ico3), TabClass3.class, false); mTabHost.addTab(createTab("tab4", "test4", R.drawable.ico4), TabClass4.class, false);

したがって、oncreateview では次のようになります。

public View  onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Bundle extras = getArguments();  
    //pseudo
    if(true )return inflater.inflate(R.layout.tab_messages, container, false);
    else return null;
}

しかし、「私のタブは触れるまで読み込まない」と言う簡単な方法があるはずです

curretTab を -1 に設定しようとしましたが、何もしませんでした。

どんな助けでも素晴らしいでしょう!

4

1 に答える 1

0

あなたの仕事をしてください

setUserVisibleHint()

onCreateView の前に呼び出された場合、または onResume が呼び出されるまでこれらのイベントを取得したくない場合、いくつかの問題が発生する可能性があります。この Fragment でタブを拡張します。onResume より前に onVisible を呼び出し、setUserVisibleHint がシステムによって呼び出された場合、後続の更新を提供します。

UserVisibleHintFragment

そして、あなたのことをしてください

onVisible()

TabHost が setUserVisibleHint を呼び出すかどうかはわかりませんが (少なくとも ViewPager は呼び出します)

于 2014-02-13T20:07:35.390 に答える