博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android之TabHost布局
阅读量:7143 次
发布时间:2019-06-29

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

1.概念

      盛放Tab的容器就是TabHost。TabHost的实现有两种方式:

      第一种继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost。各个Tab中的内容在布局文件中定义就行了。

      第二种方式,不继承TabActivity,在布局文件中定义TabHost即可,但是TabWidget的id必须是@android:id/tabs,FrameLayout的id必须是@android:id/tabcontent。

 2.案例

1)继承TabActivity

res/layout/main.xml

  
  
    
    
    
  
  
  
    
    
  
  
  
    
    
  

HelloTabHost.java

public class HelloTabHost extends TabActivity {
  @Override    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);     //调用TabActivity的getTabHost()方法获取TabHost对象     TabHost tabHost = getTabHost();     //设置使用TabHost布局     LayoutInflater.from(this).inflate(R.layout.main, tabHost.getTabContentView(),true);      //添加第一个标签页     tabHost.addTab(tabHost.newTabSpec("tab01").setIndicator("已接电话").setContent(R.id.tab01));     //添加第二个标签页,并在其标签上添加一个图片     tabHost.addTab(tabHost.newTabSpec("tab02").setIndicator("未接电话",getResources().getDrawable(R.drawable.icon)).setContent(R.id.tab02));     //添加第三个标签页     tabHost.addTab(tabHost.newTabSpec("tab03").setIndicator("已拨电话").setContent(R.id.tab03));   }  }

运行效果:

2)不继承TabActivity

     继承普通Activity,<TabWidget>标签id必须为tabs、<FrameLayout>标签id必须为tabcontent.这个方式在通过findViewById获得TabHost之后,必须要调用setup方法。

main.xml代码

Java代码

public class TabHostTest extends Activity {      @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);          setContentView(R.layout.main);  // 获取TabHost对象          TabHost tabHost = (TabHost) findViewById(R.id.tabhost);  // 如果没有继承TabActivity时,通过该种方法加载启动tabHost          tabHost.setup();          tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("第一个标签",                  getResources().getDrawable(R.drawable.icon)).setContent(                  R.id.view1));          tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("第三个标签")                  .setContent(R.id.view3));          tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("第二个标签")                  .setContent(R.id.view2));      }  }

效果图

 --------------------------------------------------------------------

PS: 欢迎关注公众号"Devin说",会不定期更新Java相关技术知识。

--------------------------------------------------------------------

 

转载地址:http://vrgrl.baihongyu.com/

你可能感兴趣的文章
卡尔曼滤波简介——4.方差比较
查看>>
mysql -- 预处理语句
查看>>
ProgressDialog进度条对话框
查看>>
用prefuse对owl本体可视化
查看>>
Android-关于屏幕适配的一些经验
查看>>
一个老王开枪案例带你一步一步领略程序开发的魅力
查看>>
Head First Design Patterns
查看>>
2013-2014 ACM-ICPC Pacific Northwest Regional Contest题解
查看>>
win10安装VirtualBox+使用
查看>>
模型基础--mysql
查看>>
浅谈基于IP网络的H.264关键技术及应用
查看>>
GstStaticCaps的初始化
查看>>
async and await 简单的入门
查看>>
YL库无法启动
查看>>
DataGridView 控件
查看>>
IEnumerable,IQueryable的区别
查看>>
冲刺阶段第四天,4月22日。
查看>>
树和森林
查看>>
C++类指针初始化
查看>>
python面向对象编程进阶
查看>>