zoukankan      html  css  js  c++  java
  • android 之 TabHost

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

    mainActivity.xml

    private TabHost myTabHost;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //setContentView(R.layout.main);
           myTabHost = this.getTabHost();
            LayoutInflater.from(this).inflate(R.layout.main,
                    myTabHost.getTabContentView(), true);
            myTabHost.addTab(myTabHost
                    .newTabSpec("选项卡1")
                    .setIndicator("选项卡1",
                            getResources().getDrawable(R.drawable.img01))
                    .setContent(R.id.ll01));
            myTabHost.addTab(myTabHost
                    .newTabSpec("选项卡2")
                    .setIndicator("选项卡2",
                            getResources().getDrawable(R.drawable.img02))
                    .setContent(R.id.ll01));
            myTabHost.addTab(myTabHost
                    .newTabSpec("选项卡3")
                    .setIndicator("选项卡3",
                            getResources().getDrawable(R.drawable.img03))
                    .setContent(R.id.ll03));

        }

    Tab内容布局文件:

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <LinearLayout android:id="@+id/ll01" android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:gravity="center_horizontal"
            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/ll02" android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:gravity="center_horizontal"
            android:orientation="vertical">
            <AnalogClock android:id="@+id/widget36"
                android:layout_width="wrap_content" android:layout_height="wrap_content">
            </AnalogClock>
        </LinearLayout>
        <LinearLayout android:id="@+id/ll03" android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:gravity="center_horizontal"
            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>

    image

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

    <?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="fill_parent"
             android:layout_height="wrap_content">
             <LinearLayout
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
                
                 <TabWidget android:id="@android:id/tabs" 
                  android:orientation="horizontal"
                  android:layout_width="fill_parent"
                  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" android:text="Tab1"/>
                        <TextView android:id="@+id/view2"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent" android:text="Tab2"/>
                        <TextView android:id="@+id/view3"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent" android:text="Tab3"/>
                 </FrameLayout>
             
             </LinearLayout>
        </TabHost>
    </LinearLayout>

    mainActivity

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.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.img01))
                    .setContent(R.id.view1));

            tabHost.addTab(tabHost
                    .newTabSpec("tab2")
                    .setIndicator("tab2",
                            getResources().getDrawable(R.drawable.img02))
                    .setContent(R.id.view2));

            tabHost.addTab(tabHost
                    .newTabSpec("tab3")
                    .setIndicator("tab3",
                            getResources().getDrawable(R.drawable.img03))
                    .setContent(R.id.view3));

  • 相关阅读:
    现实世界的Windows Azure:采访Definition 6首席技术官Paul Hernacki
    CloudConnect回顾,以及数据的未来
    现已可用:集成了Web Deploy的Windows Azure SDK 1.4更新版
    使用Azure SDK 1.4.1中的Web Deploy
    现实世界的SQL Azure:采访Zitec公司CEO,Alexandru Lapusan
    Microsoft和Toyota宣布战略合作伙伴关系,联手构建基于Windows Azure的下一代远程通信系统
    Delphi 2007 的重构功能
    关于类的入门的例子(6): 类引用示例
    获取所有汉字与 Unicode 的对照表
    关于类的入门例子(4): property
  • 原文地址:https://www.cnblogs.com/yechanglv/p/6923056.html
Copyright © 2011-2022 走看看