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

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

main.xml
        
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <TabHostandroid:id="@+id/tabhost"xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"android:layout_width="fill_parent"
  4. android:layout_height="fill_parent">
  5. <RelativeLayoutandroid:orientation="vertical"
  6. android:layout_width="fill_parent"android:layout_height="fill_parent">
  7. <TabWidgetandroid:id="@android:id/tabs"
  8. android:layout_width="fill_parent"android:layout_height="wrap_content"
  9. android:layout_alignParentBottom="true"/>
  10. <FrameLayoutandroid:id="@android:id/tabcontent"
  11. android:layout_width="fill_parent"android:layout_height="fill_parent">
  12. <LinearLayoutandroid:id="@+id/tab1"
  13. android:layout_width="fill_parent"android:layout_height="fill_parent"
  14. androidrientation="vertical">
  15. <TextViewandroid:id="@+id/view1"android:layout_width="wrap_content"
  16. android:layout_height="wrap_content"android:text="@string/textView_1"/>
  17. </LinearLayout>
  18. <LinearLayoutandroid:id="@+id/tab2"
  19. android:layout_width="fill_parent"android:layout_height="fill_parent"
  20. androidrientation="vertical">
  21. <TextViewandroid:id="@+id/view2"android:layout_width="wrap_content"
  22. android:layout_height="wrap_content"android:text="@string/textView_2"/>
  23. </LinearLayout>
  24. <LinearLayoutandroid:id="@+id/tab3"
  25. android:layout_width="fill_parent"android:layout_height="fill_parent"
  26. androidrientation="vertical">
  27. <TextViewandroid:id="@+id/view3"android:layout_width="wrap_content"
  28. android:layout_height="wrap_content"android:text="@string/textView_3"/>
  29. </LinearLayout>
  30. <LinearLayoutandroid:id="@+id/tab4"
  31. android:layout_width="fill_parent"android:layout_height="fill_parent"
  32. androidrientation="vertical">
  33. <TextViewandroid:id="@+id/view4"android:layout_width="wrap_content"
  34. android:layout_height="wrap_content"android:text="@string/textView_4"/>
  35. </LinearLayout>
  36. </FrameLayout>
  37. </RelativeLayout>
  38. </TabHost>
TabDemo1
        
  1. packagecom.focusmobi.TabDemo1;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.widget.TabHost;
  5. publicclassTabDemo1extendsActivity{
  6. /**Calledwhentheactivityisfirstcreated.*/
  7. @Override
  8. publicvoidonCreate(Bundleicicle){
  9. super.onCreate(icicle);
  10. setContentView(R.layout.main);
  11. setTitle("TabWidgetDemo");
  12. TabHosttabs=(TabHost)findViewById(R.id.tabhost);
  13. tabs.setup();
  14. TabHost.TabSpecspec=tabs.newTabSpec("tab1");
  15. spec.setContent(R.id.tab1);
  16. spec.setIndicator("主页");
  17. tabs.addTab(spec);
  18. spec=tabs.newTabSpec("tab2");
  19. spec.setContent(R.id.tab2);
  20. spec.setIndicator("经济");
  21. tabs.addTab(spec);
  22. spec=tabs.newTabSpec("tab3");
  23. spec.setContent(R.id.tab3);
  24. spec.setIndicator("汽车");
  25. tabs.addTab(spec);
  26. spec=tabs.newTabSpec("tab4");
  27. spec.setContent(R.id.tab4);
  28. spec.setIndicator("科技");
  29. tabs.addTab(spec);
  30. tabs.setCurrentTab(0);
  31. }
  32. }

本文只是解决了将选项卡按钮放在屏幕下方,至于如何美化按钮使程序看起来更加赏心悦目已经超出了本文范围,以后我们再讨论。

源码下载:android_tabwidget1_src.rar

作者:黎波
博客: http://bobli.cnblogs.com/
日期:2011年5月9日

更多相关文章

  1. 从Android到React Native开发(三、自定义原生控件支持)
  2. 如何利用Eclipse运行android程序
  3. Android UI控件之ListView实现圆角效果
  4. Android之UI学习篇十二:ListView控件学习(二)
  5. 【移动开发】Android应用程序中实用的代码框架(一)
  6. [置顶] Android底层库和程序
  7. 推荐几本Android程序员必读书籍
  8. 应用程序基础之01序论
  9. Android程序员指南(10)

随机推荐

  1. 三种安卓模拟器的安装和比较
  2. Android创建wifi热点爬坑总结
  3. 浅谈Android五大布局
  4. android的Sprite,TiledLayer,LayerManage
  5. Android 自适应屏幕方向和大小
  6. Android之地址服务
  7. Serializable 和 Parcelable 区别
  8. Android之Action Bar
  9. Android 学习 笔记_01
  10. Google Android for Cars的整理Android A