TabActivity
[功能]
一个TabActivity 包含 数个标签
[代码 步骤]
1. 得到 TabHost 的实例
TabHost host = this.getTabHost();
2. 定义 CustomTabs 用于填充 TabHost 各个标签布局用
写道
其必须包含 public View createTabContent(String tag) 定义
public class CustomTabs implements TabHost.TabContentFactory {
Activity activity;
LayoutInflater inflater;
LinearLayout layout;
public CustomTabs (Activity a) {
activity = a;
inflater = activity.getLayoutInflater();
}
/** {@inheritDoc} */
public View createTabContent(String tag) {
activity.setTitle(tag);
return addCustomView(tag);
}
public View addCustomView(String id){
layout = new LinearLayout(activity);
layout.setOrientation(LinearLayout.VERTICAL);
if(id.equals(TAB1)){
ImageView iv = new ImageView(activity);
iv.setImageResource(R.drawable.o);
layout.addView(iv,
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));
}
else if(id.equals(TAB2)){
EditText edit = new EditText(activity);
layout.addView(edit,
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
Button btn = new Button(activity);
btn.setText("OK");
layout.addView(btn,
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
RadioGroup group = new RadioGroup(activity);
group.setOrientation(LinearLayout.HORIZONTAL);
RadioButton radio1 = new RadioButton(activity);
radio1.setText("Radio 1");
group.addView(radio1);
RadioButton radio2 = new RadioButton(activity);
radio2.setText("Radio 2");
group.addView(radio2);
layout.addView(group,
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
}
else if(id.equals(TAB3)){
LinearLayout.LayoutParams param3 =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);
layout.addView(inflater.inflate(R.layout.item_3, null),param3);
}
else if(id.equals(TAB4)){
LinearLayout.LayoutParams param4 =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);
layout.addView(inflater.inflate(R.layout.item_4, null),param4);
}
else {
TextView tv5 = new TextView(activity);
tv5.setText("no resource aviable!");
tv5.setGravity(1);
layout.addView(tv5,
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));
}
return layout;
}
}
3. 使用 CustomTabs
host.addTab(host.newTabSpec(TAB1)
.setIndicator("Tab 1", getResources().getDrawable(R.drawable.beijing_001_mb5ucom))
.setContent(item));
4. 标签变化的监听函数
host.setOnTabChangedListener(new OnTabChangeListener(){
@Override
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
}
});
5. emulator 运行截图:
* 标签1
* 标签2
* 标签3
分享到:
相关推荐
TabActivity使用实例
TabActivity尽管已经弃用,但是对于要求不那么高的App来说,也是完全可以用的。
安卓切换卡使用的非常有用的代码,解释非常清楚,不难读懂,只需重写一个方法,完全可以当一个模板去用。
TabActivity 实现滑动翻页(动画)
NULL 博文链接:https://yangguangfu.iteye.com/blog/679001
使用 TabActivity 实现滑动翻页(带动画)和标签置底
如何使用Fragment建立TabActivity
实现了Tab控件,每个TabActivity用ListView实现
利用Fragment模拟Tabactivity功能。同时也实现了ELong主界面的底部栏的动画切换功能。
TabActivity 之间跳转 传值
NULL 博文链接:https://griffinshi.iteye.com/blog/569312
看到还有些人在使用TabActvity,这个已经被Google废弃了的类,为了大家方便,写了一个能代替TabActivity的东西。说白了也就是对viewpager跟底部菜单进行了一个封装,标准的底部菜单自定义控件已经写好,如果有另外的...
在android3.0之后、google淘汰了之前使用tabactivity来实现标切换,转而使用fragment,使用v4包也能够实现向下兼容 使用FragmentTabHost实现tabActivity+tabHost
我们的Activity不再继承于Activity而改之继承于tabActivity,并在布局文件中布局上述点击按钮之后的5个显示文字的TextView,布局文件与之前的布局文件并无变化
一个简单的Fragment + TabActivity实现标签内跳转demo, 本来要用ViewPager的,但是发现有些东西和自己原来想的不一样, 下个版本再实现吧。
TabActivity探索 TabActivity探索 TabActivity探索 TabActivity探索 TabActivity探索
使用tabActivity时 去掉页签底部默认的白线
tabactivity的使用,和美化,用起来不错,不是我原创 的。