TabHost三种方法
来源:互联网 发布:为知笔记登录 编辑:程序博客网 时间:2024/05/16 19:35
方式一:TabHost继承TabActivity方法相当简单
首先看布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- 第一个布局 --> <LinearLayout android:id="@+id/view1" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tab1" /> </LinearLayout> <!-- 第二个布局 --> <LinearLayout android:id="@+id/view2" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tab2" /> </LinearLayout> <!-- 第三个布局 --> <LinearLayout android:id="@+id/view3" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tab3" /> </LinearLayout></FrameLayout>
然后就是一个activity就行了MainActivity
package com.example.tabhost_trynew;import com.example.tabhost_trynew.R;import android.app.TabActivity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.widget.FrameLayout;import android.widget.TabHost;import android.widget.TabHost.OnTabChangeListener; import android.widget.TabHost.TabSpec;public class MainActivity extends TabActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//TabHost extends FrameLayoutTabHost tabHost = getTabHost();////把我们的布局文件添加到tabHost的FrameLayout下面 LayoutInflater.from(this).inflate(R.layout.activity_main,tabHost.getTabContentView(), true);/** * public void addTab(TabSpec tabSpec) * tabSpec:A tab has a tab indicator, content, and a tag * */tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("tab1", getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.view1));tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("tab2").setContent(R.id.view2));tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("tab3").setContent(R.id.view3)); //setOnTabChangedListener tabHost.setOnTabChangedListener(new OnTabChangeListener(){ @Override public void onTabChanged(String tabId) { if (tabId.equals("tab1")) { } if (tabId.equals("tab2")) { } if (tabId.equals("tab3")) { } } }); }}
++++++++++++++++++++++++++++++++++++++++++方式二+++++++++++++++++++++++++++++++++++
方式二:TabHost继承Activity(xml布局实现)
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <!-- TabHost是盛放Tab的容器。TabHost必须包含一个 TabWidget和一个FrameLayout --> <TabHost android:id="@+id/tabhost" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 这里添加一个布局,原因是 --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <!-- TabWidget用来显示选项卡 --> <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" > </TabWidget> <!-- 用来显示选项卡对应的内容 --> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- 第一个tab的布局 --> <LinearLayout android:id="@+id/tab1" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="match_parent" android:text="林炳东" /> </LinearLayout> <!-- 第二个tab的布局 --> <LinearLayout android:id="@+id/tab2" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="match_parent" android:text="张小媛" /> </LinearLayout> <!-- 第三个tab的布局 --> <LinearLayout android:id="@+id/tab3" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView3" android:layout_width="match_parent" android:layout_height="match_parent" android:text="马贝贝" /> </LinearLayout> </FrameLayout> </LinearLayout> </TabHost> </LinearLayout>MainActivity
package com.example.tabhost_try2;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.TabHost;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TabHost th=(TabHost)findViewById(R.id.tabhost);// 作用是来初始化我们的TabHost容器:th.setup(); th.addTab(th.newTabSpec("tab1").setIndicator("tab1",getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.tab1));th.addTab(th.newTabSpec("tab2").setIndicator("tab2",null).setContent(R.id.tab2));th.addTab(th.newTabSpec("tab3").setIndicator("tab3",null).setContent(R.id.tab3));}}
+++++++++++++++++++++++++++++++++++++方式三+++++++++++++++++++++++++++++++++++++++++
拆分方法(跟方法二类似)
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TabHost android:id="@+id/tabhost" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" > </TabWidget> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent" > </FrameLayout> </LinearLayout> </TabHost></LinearLayout>
tab1.xml
<?xml version="1.0" encoding="UTF-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:text="我是标签1的内容喔" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"> </TextView> </LinearLayout>
tab2.xml
<?xml version="1.0" encoding="UTF-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout02" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:text="标签2" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>
MainActivity
package com.example.tabhost_try3;import android.os.Bundle;import android.app.Activity;import android.view.LayoutInflater;import android.view.Menu;import android.widget.TabHost;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TabHost m = (TabHost) findViewById(R.id.tabhost);m.setup();LayoutInflater i = LayoutInflater.from(this);i.inflate(R.layout.tab1, m.getTabContentView());i.inflate(R.layout.tab2, m.getTabContentView());m.addTab(m.newTabSpec("tab1").setIndicator("tab1").setContent(R.id.LinearLayout01));m.addTab(m.newTabSpec("tab2").setIndicator("tab2").setContent(R.id.LinearLayout02));}}
0 0
- TabHost三种方法
- 【Android】设置tabhost位于底部的三种方法
- 设置tabhost位于底部的三种方法
- 设置tabhost位于底部的三种方法
- 设置tabhost位于底部的三种方法
- TabHost两种实现方法
- Android中全屏 取消标题栏,TabHost中设置NoTitleBar的三种方法
- Android中全屏取消标题栏,TabHost中设置NoTitleBar的三种方法
- Android中全屏 取消标题栏,TabHost中设置NoTitleBar的三种方法
- 【Android基础篇】TabHost导航栏添加标签页的三种方法
- Android中全屏 取消标题栏,TabHost中设置NoTitleBar的三种方法
- Android_UI_实现TabHost的两种方法
- Android--TabHost的两种实现方法
- Android_UI_实现TabHost的两种方法
- Android_UI_实现TabHost的两种方法
- 实现TabHost的两种方法
- Android中全屏 取消标题栏,TabHost中设置NoTitleBar的三种方法(强制取消黑边)
- TabHost使用(三)
- arduino lcd教程3:控制屏幕上的小人
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
- ACdream dfs 专题
- asdfd
- php异常处理—设置顶层异常处理器
- TabHost三种方法
- 第十三周项目3 立体类族共有的抽象类
- 密码学学习篇之---盐值(Salt)
- nginx日志热切分
- [APP开发者转型为壕的正确方式]
- SNMP详细资料
- abap中的弹出窗口函数
- 哪些新科技在改变销售管理流程
- ubuntu 下安装 JBoss EAP-6.4.0