Android中TabWidget简单应用

         看到很多热门的Android程序(如:新浪微博、腾讯微博、京东商城、淘宝、当当等等)使用选项卡风格作为程序界面的主框架结构,而Android的选项卡控件默认是按钮在上方的。我在网上看到有多种实现方法,这里提供一种个人觉得比较简单的。由于我对Android开发所知甚少,方法的优劣目前不好评价,欢迎各位提供更好的思路。

主要原理:设置 TabWidget 控件的 android:layout_alignParentBottom="true" 实现。

main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

<TabHost android:id="@+id/tabhost" xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical" android:layout_width="fill_parent"

    android:layout_height="fill_parent">

    <RelativeLayout android:orientation="vertical"

        android:layout_width="fill_parent" android:layout_height="fill_parent">

        <TabWidget android:id="@android:id/tabs"

            android:layout_width="fill_parent" android:layout_height="wrap_content"

            android:layout_alignParentBottom="true" />

        <FrameLayout android:id="@android:id/tabcontent"

            android:layout_width="fill_parent" android:layout_height="fill_parent">

            <LinearLayout android:id="@+id/tab1"

                android:layout_width="fill_parent" android:layout_height="fill_parent"

                androidrientation="vertical">

                <TextView android:id="@+id/view1" android:layout_width="wrap_content"

                    android:layout_height="wrap_content" android:text="@string/textView_1" />

                <ListView android:id="@+id/listView1" android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="match_parent"></ListView>

            </LinearLayout>

            <LinearLayout android:id="@+id/tab2"

                android:layout_width="fill_parent" android:layout_height="fill_parent"

                androidrientation="vertical">

                <TextView android:id="@+id/view2" android:layout_width="wrap_content"

                    android:layout_height="wrap_content" android:text="@string/textView_2" />

            </LinearLayout>

            <LinearLayout android:id="@+id/tab3"

                android:layout_width="fill_parent" android:layout_height="fill_parent"

                androidrientation="vertical">

                <TextView android:id="@+id/view3" android:layout_width="wrap_content"

                    android:layout_height="wrap_content" android:text="@string/textView_3" />

            </LinearLayout>

            <LinearLayout android:id="@+id/tab4"

                android:layout_width="fill_parent" android:layout_height="fill_parent"

                androidrientation="vertical">

                <TextView android:id="@+id/view4" android:layout_width="wrap_content"

                    android:layout_height="wrap_content" android:text="@string/textView_4" />

            </LinearLayout>

        </FrameLayout>

    </RelativeLayout>

</TabHost>

</LinearLayout>

TabdemoActivity.java

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);



    setContentView(R.layout.main);

    setTitle("移动办公Android客户端");

    Resources res = getResources();



    TabHost tabs = (TabHost) findViewById(R.id.tabhost);

    tabs.setup();



    TabHost.TabSpec spec = tabs.newTabSpec("tab1");

    spec.setContent(R.id.tab1);

    spec.setIndicator("待办(5)", res.getDrawable(R.drawable.menu_1));

    tabs.addTab(spec);



    spec = tabs.newTabSpec("tab2");

    spec.setContent(R.id.tab2);

    spec.setIndicator("公告(1)", res.getDrawable(R.drawable.menu_2));

    tabs.addTab(spec);



    spec = tabs.newTabSpec("tab3");

    spec.setContent(R.id.tab3);

    spec.setIndicator("邮件", res.getDrawable(R.drawable.menu_3));

    tabs.addTab(spec);



    spec = tabs.newTabSpec("tab4");

    spec.setContent(R.id.tab4);

    spec.setIndicator("设置", res.getDrawable(R.drawable.menu_4));

    tabs.addTab(spec);

    tabs.setCurrentTab(0);

}

运行效果:

image

代码下载:点击下载

你可能感兴趣的:(tabwidget)