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