博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TabHost两种实现方式
阅读量:5953 次
发布时间:2019-06-19

本文共 3837 字,大约阅读时间需要 12 分钟。

第一种:继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost。只要定义具体Tab内容布局就行了. 

package com.example.testtabhost;import android.app.TabActivity;import android.os.Bundle;import android.view.LayoutInflater;import android.widget.TabHost;import android.widget.Toast;import android.widget.TabHost.OnTabChangeListener;public class MainActivity extends TabActivity {     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);                  TabHost th = getTabHost();         //声明TabHost,然后用LayoutInflater过滤出布局来,给TabHost加上含有Tab页面的FrameLayout		 //from(this)从这个TabActivity获取LayoutInflater  		 //R.layout.main 存放Tab布局		 //通过TabHost获得存放Tab标签页内容的FrameLayout  		 //是否将inflate 拴系到根布局元素上		 LayoutInflater.from(this).inflate(R.layout.activity_main, th.getTabContentView(), true); 		 //通过TabHost获得存放Tab标签页内容的FrameLayout,		 //newTabSpecd的作用是获取一个新的 TabHost.TabSpec,并关联到当前 TabHost		 //setIndicator的作用是指定标签和图标作为选项卡的指示符.		 //setContent的作用是指定用于显示选项卡内容的视图 ID.         th.addTab(th.newTabSpec("all").setIndicator("所有通话记录", getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.TextView01));         th.addTab(th.newTabSpec("ok").setIndicator("已接来电",getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.TextView02));         th.addTab(th.newTabSpec("cancel").setIndicator("未接来电",getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.TextView03));         //setOnTabChangeListener的作业是注册一个回调函数,当任何一个选项卡的选中状态发生改变时调用.           th.setOnTabChangedListener(            new OnTabChangeListener() {                 @Override                 public void onTabChanged(String tabId) {                     Toast.makeText(MainActivity.this, tabId, Toast.LENGTH_LONG).show();                 }             }         );            }}
第二种:不用继承TabActivity,在布局文件中定义TabHost即可,但是TabWidget的id必须是 

@android:id/tabs,FrameLayout的id必须是@android:id/tabcontent。TabHost的id可以自定义. 

package com.example.testtabhost2;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.widget.TabHost;import android.widget.TabWidget;public class MainActivity extends Activity {	private static final String TAG = "MainActivity";	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);                TabHost tabHost = (TabHost) findViewById(R.id.tabhost);        tabHost.setup();        TabWidget tabWidget = tabHost.getTabWidget();                tabHost.addTab(tabHost.newTabSpec("tab1")                .setIndicator("tab1", getResources().getDrawable(R.drawable.ic_launcher))                .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;*/		}	}}

转载于:https://www.cnblogs.com/lanzhi/p/6469829.html

你可能感兴趣的文章
钱到用时方恨少(随记)
查看>>
mybatis主键返回的实现
查看>>
org.openqa.selenium.StaleElementReferenceException
查看>>
Android Intent传递对象为什么要序列化?
查看>>
数论之 莫比乌斯函数
查看>>
linux下查找某个文件位置的方法
查看>>
python之MySQL学习——数据操作
查看>>
懒加载——实现原理
查看>>
【个人作业】单词链
查看>>
Harmonic Number (II)
查看>>
长连接、短连接、长轮询和WebSocket
查看>>
day30 模拟ssh远程执行命令
查看>>
做错的题目——给Array附加属性
查看>>
Url.Action取消字符转义
查看>>
K8S调度之标签选择器
查看>>
JQuery选择器大全
查看>>
Gamma阶段第三次scrum meeting
查看>>
python3之装饰器修复技术@wraps
查看>>
[考试]20150606
查看>>
Javascript_备忘录5
查看>>