android的TabHost的两种实现方式
来源:互联网 发布:东莞厚街淘宝招聘网 编辑:程序博客网 时间:2024/04/27 16:20
原文:
TabHost两种实现方式
链接:http://zxl-ong.iteye.com/blog/744809
第一种:继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost。只要定义具体Tab内容布局就行了.
xml布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"><LinearLayout android:id="@+id/widget_layout_Blue"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical" ><EditText android:id="@+id/widget34" android:layout_width="fill_parent"android:layout_height="wrap_content" android:text="EditText"android:textSize="18sp"></EditText><Button android:id="@+id/widget30" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="Button"></Button></LinearLayout><LinearLayout android:id="@+id/widget_layout_red"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical" ><AnalogClock android:id="@+id/widget36"android:layout_width="wrap_content" android:layout_height="wrap_content"></AnalogClock></LinearLayout><LinearLayout android:id="@+id/widget_layout_green"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical"><RadioGroup android:id="@+id/widget43"android:layout_width="166px" android:layout_height="98px"android:orientation="vertical"><RadioButton android:id="@+id/widget44"android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="RadioButton"></RadioButton><RadioButton android:id="@+id/widget45"android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="RadioButton"></RadioButton></RadioGroup></LinearLayout></FrameLayout>java代码:super.onCreate(savedInstanceState);myTabhost=this.getTabHost();//get TabhostLayoutInflater.from(this).inflate(R.layout.main, myTabhost.getTabContentView(), true);myTabhost.setBackgroundColor(Color.argb(150, 22, 70, 150));myTabhost.addTab(myTabhost.newTabSpec("One")// make a new Tab.setIndicator("A")// set the Title and Icon.setContent(R.id.widget_layout_Blue));// set the layoutmyTabhost.addTab(myTabhost.newTabSpec("Two")// make a new Tab.setIndicator("B",getResources().getDrawable(R.drawable.mumule))// set the Title and Icon.setContent(R.id.widget_layout_green));// set the layoutmyTabhost.addTab(myTabhost.newTabSpec("Three")// make a new Tab.setIndicator("C",getResources().getDrawable(R.drawable.notepad))// set the Title and Icon.setContent(R.id.widget_layout_red));
第二种:不用继承TabActivity,在布局文件中定义TabHost即可,但是TabWidget的id必须是
@android:id/tabs,FrameLayout的id必须是@android:id/tabcontent。TabHost的id可以自定义.
xml布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/hometabs"android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabHost android:id="@+id/tabhost" android:layout_width="wrap_content" android:layout_height="wrap_content"> <LinearLayoutandroid:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> </TabWidget> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/view1" android:layout_width="fill_parent" android:layout_height="fill_parent"/> <TextView android:id="@+id/view2" android:layout_width="fill_parent" android:layout_height="fill_parent"/> <TextView android:id="@+id/view3" android:layout_width="fill_parent" android:layout_height="fill_parent"/> </FrameLayout> </LinearLayout> </TabHost></LinearLayout>java代码:protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.hometabs); TabHost tabHost = (TabHost) findViewById(R.id.tabhost); tabHost.setup(); TabWidget tabWidget = tabHost.getTabWidget(); tabHost.addTab(tabHost.newTabSpec("tab1") .setIndicator("tab1", getResources().getDrawable(R.drawable.mumule)) .setContent(R.id.view1)); tabHost.addTab(tabHost.newTabSpec("tab3") .setIndicator("tab3") .setContent(R.id.view3)); tabHost.addTab(tabHost.newTabSpec("tab2") .setIndicator("tab2") .setContent(R.id.view2)); final int tabs = tabWidget.getChildCount(); Log.i(TAG, "***tabWidget.getChildCount() : " + tabs); final int tabWidth = 90;final int tabHeight = 45;for (int i = 0; i < tabs; i++) {/*final View view = tabWidget.getChildAt(i);view.getLayoutParams().width = tabWidth;view.getLayoutParams().height = tabHeight;final TextView tv = (TextView) view.findViewById(android.R.id.title); tv.setTextColor(this.getResources().getColorStateList(android.R.color.black)); MarginLayoutParams tvMLP = (MarginLayoutParams)tv.getLayoutParams(); tvMLP.bottomMargin = 8;*/}}
读后感:
我使用的是第二种方法,验证没有问题。文中提到,TabWidget的id必须是@android:id/tabs,FrameLayout的id必须是@android:id/tabcontent,这可能是容易被人忽视的地方。
20131213
0 0
- android的TabHost的两种实现方式
- tabHost的两种实现方式
- TabHost两种不同的实现方式
- TabHost的两种实现方式
- android TabHost的两种布局方式
- Android--TabHost的两种实现方法
- tabhost的两种方式
- Android TabHost两种实现方式
- TabHost两种实现方式及各个方法的作用
- TabHost两种实现方式
- TabHost两种实现方式
- TabHost两种实现方式
- TabHost两种实现方式
- TabHost两种实现方式
- TabHost两种实现方式
- TabHost两种实现方式
- TabHost两种实现方式
- 创建tabhost的两种方式
- VC++中进程间相互通信的十一种方法
- 机房收费系统———总结
- 张震岳健身房挥汗 网友调侃似鲁智深
- unity 加载图片出现问号
- 再谈ArcGIS10许可初始化
- android的TabHost的两种实现方式
- 设计一个程序,输入3个整数,将其按从大到小的顺序输出
- maven 插件安装
- 如何用OBIEE 11.1.1.7 AdminTool 连接BI server RPD
- MySQL性能诊断与调优
- 无我编程:你的工作不代表你
- 服务器数据库系列 - MySQL 加锁处理分析
- 解决oracle 客户端混乱造成OBIEE Client Administration不能连接数据库问题
- RTX51 编译出现错误: I/O ERROR ON INPUT FILE: EXCEPTION 的解决方案