1

私のAndroidアプリには、5つのタブを持つタブホストがあります。問題は、最初のタブで setCurrentTab(2).Android 開始アクティビティを使用してから、3 番目のタブでアクティビティを開始する場合です。TabHost クラスのメソッド addTab を使用すると、最初のタブでもアクティビティが開始されることがわかりました。

    if (mCurrentTab == -1) {
        setCurrentTab(0); 
    }

私はスタックオーバーフローで私のスレッドを次のように読みました: https://stackoverflow.com/questions/9978231/android-when-i-put-setcurrenttab-for-tabhost-it-loads-the-first-added-tab-ac

原因 クライアントの要件により、タブを並べ替えることができません。

4

4 に答える 4

2

フラグメントの読み込みを防ぎたい場合は、onVisible に入れます。このクラスを使用UserVisibleHintFragment

事前の積み込みを防ぐのに役立ちます。

于 2015-06-05T06:33:43.540 に答える
0

あなたの質問は、タブをどのように構築しているかを教えてくれません。タブの作成方法に関するコードを少し投稿していただければ、より適切な支援ができる可能性があります。

以下は、TabHost を使用してタブを作成する簡単な方法です。以下tabHost.setCurrentTab(2);はうまく動作します...

TabHost tabHost = getTabHost();

// Tab for About
TabSpec aboutspec = tabHost.newTabSpec("About");
aboutspec.setIndicator("About", getResources().getDrawable(R.drawable.icon_about_tab));
aboutspec.setContent(new Intent(this, AboutActivity.class));

// Tab for Contacts
TabSpec contactsspec = tabHost.newTabSpec("Contacts");
contactsspec.setIndicator("Contacts", getResources().getDrawable(R.drawable.icon_contacts_tab));
contactsspec.setContent(new Intent(this, ContactsActivity.class));

// Tab for Resources
TabSpec resourcesspec = tabHost.newTabSpec("Resources");
resourcesspec.setIndicator("Resources", getResources().getDrawable(R.drawable.icon_resources_tab));
resourcesspec.setContent(new Intent(this, ResourcesActivity.class));

// Adding all TabSpec to TabHost
tabHost.addTab(aboutspec);
tabHost.addTab(contactsspec);
tabHost.addTab(resourcesspec);

// set the current tab to Resources
tabHost.setCurrentTab(2);

これが問題の解決に役立つことを願っています。

于 2013-05-22T05:55:30.913 に答える
0

setCurrentTab(2)afteraddTabメソッドを使用します。あなたのonCreateの最後の行でそれを使用することをお勧めしますTabActivity

于 2013-05-22T02:59:31.207 に答える