想让整个Tabhost消失或隐藏在特定选项卡上

时间:2011-12-09 09:25:12

标签: android tabs android-tabhost

说,我tabs中有2 TabActivity,点击其中一个tabs后,我就进入Activity FirstTab。当我在这个特定班级时,我不希望我的TabHost可见。

每当我点击标签时,我希望TabHost消失。

我该怎么做?

代码段:

TabSpec firstTabSpec = tabHost.newTabSpec("tid1");  
firstTabSpec.setIndicator("", getResources().getDrawable(R.drawable.icon));
firstTabSpec.setContent(new Intent(this,FirstTab.class)); 
tabHost.addTab(firstTabSpec);

编辑:我的Xml:

<TabHost android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:id="@android:id/tabhost">
<LinearLayout android:id="@+id/LinearLayout01"
 android:orientation="vertical" 
 android:layout_height="fill_parent"
 android:layout_width="fill_parent">
<TabWidget android:id="@android:id/tabs"
 android:background="@drawable/bar_green"
 android:layout_height="wrap_content" 
 android:layout_width="fill_parent"></TabWidget>
<FrameLayout android:id="@android:id/tabcontent"
 android:layout_height="fill_parent" 
 android:layout_width="fill_parent"></FrameLayout>
</LinearLayout>
</TabHost>

我有一个简单的FirstTab Activity,点击TabHost点击我tab,我想将其转换为不包含TabHost的类。< / p>

2 个答案:

答案 0 :(得分:1)

您可以尝试将TabHost的可见性设置为“View.GONE”

getTabHost().setOnTabChangedListener(new OnTabChangeListener() {
                public void onTabChanged(String tabId) {
                    if (tabId=="firstTabId")
                        getTabHost().setVisibility(View.GONE);
                }
            });

但你确定要做到这一点吗?用户如何返回第二个标签?

答案 1 :(得分:1)

如果您不想使用TabHost,那么这是您可以实现它的另一种方式。我不知道它是否对您有用。

public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button button=(Button)findViewById(R.id.tab1);
    button.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            startActivity(new Intent(MainActivity.this,SubActivity.class));

        }
    });
}

}

SubActivity.java

public class SubActivity extends Activity 
{
    public void onCreate(Bundle instance)
    {
        super.onCreate(instance);
        setContentView(R.layout.sub);
    }

}

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <include layout="@layout/buttonpanel" />
    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="Your stuff goes here" />
</LinearLayout>

sub.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="Subactivity" />

</LinearLayout>

buttonpanel.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:weightSum="2">
    <Button android:layout_height="wrap_content"
        android:layout_width="fill_parent" android:text="Tab1" android:id="@+id/tab1"
        android:layout_weight="1" />
    <Button android:layout_height="wrap_content"
        android:layout_width="fill_parent" android:text="Tab2" android:id="@+id/tab2"
        android:layout_weight="1" />

</LinearLayout>

您可以根据需要修改布局和活动。