1

TabHost を使用したアプリを開発しています。私の TabHost の中には、4 つのタブがあります。各タブには独自の ActivityGroup があります。今、私が欲しいのは、タブの下のActivityGroupの1つにあるAcitivtyで、Tabwidgetを一時的に削除して、frameLayoutがデバイスの画面全体に表示されるようにすることです。その後、アクティビティが別のアクティビティに切り替わると、タブウィジェットが画面に再表示されます。最初の質問は、私はこれを行うことができますか? もしそうなら、どうすればそれを行うことができますか?不可能な場合、Tabwidget のタブで通常のアクティビティと ActivityGroup 内のアクティビティを切り替えることは可能ですか?

4

3 に答える 3

1

StartActivity()内部でActivityGroupも動作します。そのため、アクティビティは完了画面で開始され、finish();に返信されActivityGroup()ます。

于 2011-11-22T09:27:51.140 に答える
1

下部のタブの場合:

public void hideTab()
{
    TabWidget tabwidget=getTabWidget();
    RelativeLayout.LayoutParams params=(RelativeLayout.LayoutParams)tabwidget.getLayoutParams();
    params.setMargins(0, 0, 0, -100);

}
public void showTab()
{
    TabWidget tabwidget=getTabWidget();
    RelativeLayout.LayoutParams params=(RelativeLayout.LayoutParams)tabwidget.getLayoutParams();
    params.setMargins(0, 0, 0, -3);

}
于 2012-06-13T07:31:45.107 に答える
0

TabWigetあなたのサブクラスであるためView、を使用して非表示/再表示できるはずですsetVisibility()

TabWidget への参照が必要です。この参照が必要な場所は、非表示/表示を処理するクラスによって異なります。以下の私の例では、あなたが機能をあなたに入れていると仮定しますTabActivity- そこで、2 つのメソッドと への参照を追加しますTabWidget:

TabWidget myTabWidget; //You will need to find it in the layout in onCreate using findViewById( R.id.idOfYourTabWidget ).

public void hideTabs() {
  myTabWidget.setVisibility( View.GONE );
}

public void showTabs() {
  myTabWidget.setVisibility( View.VISIBLE );
}

次にActivity、タブを非表示にする必要がある場合は、次のようにする必要があります。

Activity activity = getParent(); //Might be getParent().getParent(); if you're inside an ActivityGroup.
if( activity instanceof MyTabActivity ) //Just to make sure.
  ((MyTabActivity) activity).hideTabs();

タブを再表示するには、同じことですが、((MyTabActivity) activity).showTabs();代わりに呼び出します。

于 2011-11-22T09:22:40.477 に答える