您的位置:首页 > 移动开发 > Android开发

android TabHost小结

2015-06-09 11:34 447 查看
转载:

TabHost是整个Tab的容器,包括两部分,TabWidget和FrameLayout。TabWidget就是每个tab的标签,FrameLayout则是tab内容。

1、如果我们使用extends TabAcitivty,如同ListActivity,TabHost必须设置为@android:id/tabhost

2、TabWidget必须设置android:id为@android:id/tabs

3、FrameLayout需要设置android:id为@android:id/tabcontent

4、参考这儿:<a href="http://blog.csdn.net/flowingflying/archive/2011/04/06/6304289.%3Ca%20href=" http:="" www.2cto.com="" kf="" web="" asp="" "="" target="_blank" class="keylink" style="color: rgb(51, 51, 51); text-decoration: none;">aspx">http://blog.csdn.net/flowingflying/archive/2011/04/06/6304289.aspx

先自定义一个xml文件:

Java代码

<?xml version="1.0" encoding="utf-8"?>

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@android:id/tabhost"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<LinearLayout

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<FrameLayout

android:id="@android:id/tabcontent"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1.0"

android:paddingBottom="53px"/>

<TabWidget

android:id="@android:id/tabs"

android:layout_alignParentBottom="true"

android:layout_width="fill_parent"

android:layout_height="50px"

android:visibility="gone"

android:layout_weight="0.0"/>

<RadioGroup

android:gravity="center_vertical"

android:orientation="horizontal"

android:id="@+id/main_radio"

android:background="@drawable/radiogroup_background"

android:layout_width="fill_parent"

android:layout_height="50dip"

android:layout_gravity="bottom">

<RadioButton

android:id="@+id/main_index_button"

android:layout_marginTop="1.0dip"

android:layout_marginRight="5dip"

android:text="@string/main_name"

android:drawableTop="@drawable/unistall"

style="@style/main_tab_bottom"

android:background="@drawable/radio_bg"/>

<RadioButton

android:id="@+id/main_running_button"

android:layout_marginTop="1.0dip"

android:layout_marginRight="5dip"

android:text="@string/run_manager_name"

android:drawableTop="@drawable/unistall"

style="@style/main_tab_bottom"

android:background="@drawable/radio_bg"/>

<RadioButton

android:id="@+id/main_uninstall_button"

android:layout_marginTop="1.0dip"

android:text="@string/uninstall_manager_name"

android:drawableTop="@drawable/unistall"

style="@style/main_tab_bottom"

android:background="@drawable/radio_bg"/>

</RadioGroup>

</LinearLayout>

</TabHost>

为了让tabHost显示在下方,要将RadioGroup的layout_gravity设置为bottom,再将FrameLayout的layout_weight设置为1,这样就可以将RadioGroup撑到最下方。style="@style/main_tab_bottom"里面定义了样式文件。

接下来就是在activity中初始化并添加tabhost:

Java代码

tabHost = (TabHost) findViewById(android.R.id.tabhost);

tabHost.addTab(Constant.tabHost.newTabSpec("Main")

.setIndicator(getString(R.string.main_name),null)

.setContent(new Intent(this, Main.class)));

tabHost.addTab(Constant.tabHost.newTabSpec("RunManager")

.setIndicator(getString(R.string.run_manager_name),null)

.setContent(new Intent(this, RunManager.class)));

tabHost.addTab(Constant.tabHost.newTabSpec("UninstallManager")

.setIndicator(getString(R.string.uninstall_manager_name),null)

.setContent(new Intent(this, UninstallManager.class)));

初始化每个RadioButton并为其添加setOnCheck
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: