Android中TabWidget简单应用
2011-08-24 15:18 Kevin-wang 阅读(917) 评论(1) 编辑 收藏 举报看到很多热门的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); }
运行效果:
代码下载:点击下载