Android TabWidget底部显示效果

TabHost控件默认使用LinearLayout包裹TabWidget和FrameLayout,布局文件如下:

<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
 android:id="@android: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> 

这样TabWidget显示在顶部,如果想把TabWidget放到底部有三种方式。

方式一:将TabHost中默认的LinearLayout换成RelativeLayout,并给TabWidget添加Android:layout_alignParentBottom="true"

<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
 android:id="@+id/tabhost" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 android:layout_alignParentLeft="true" 
 android:layout_alignParentTop="true" > 
 <RelativeLayout 
  android:layout_width="match_parent" 
  android:layout_height="match_parent"> 
 
  <TabWidget 
   android:id="@android:id/tabs" 
   android:layout_width="match_parent" 
   android:layout_height="wrap_content" 
   android:layout_alignParentBottom="true"> 
  </TabWidget> 
   
  <FrameLayout 
   android:id="@android:id/tabcontent" 
   android:layout_width="match_parent" 
   android:layout_height="match_parent" > 
  </FrameLayout> 
 </RelativeLayout> 
</TabHost> 

方式二:

1、将LinearLayout中TabWidget和FrameLayout交换位置
2、设置FrameLayout的属性:android:layout_weight="1" android:layout_height="0dp"

<TabHost xmlns:android="<a target=_blank href="http://schemas.android.com/apk/res/android" rel="external nofollow" >http://schemas.android.com/apk/res/android</a>" 
 android:id="@+id/tabhost" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 android:layout_alignParentLeft="true" 
 android:layout_alignParentTop="true" ></p><p> <LinearLayout 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:orientation="vertical" > 
 
  <FrameLayout 
   android:id="@android:id/tabcontent" 
   android:layout_width="match_parent" 
   android:layout_height="0dp" 
   android:layout_weight="1" > 
  </FrameLayout> 
   
  <TabWidget 
   android:id="@android:id/tabs" 
   android:layout_width="match_parent" 
   android:layout_height="wrap_content" 
   android:layout_alignParentBottom="true"> 
  </TabWidget> 
 </LinearLayout> 
</TabHost>

方式三:

1、将TabWidget移动到LinearLayout标签以下             

2、在FrameLayout中加入属性:android:layout_gravity="top"             

3、在TabWidget中加入属性:android:layout_gravity="bottom"

<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
 android:id="@+id/tabhost" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 android:layout_alignParentLeft="true" 
 android:layout_alignParentTop="true" > 
 
 <LinearLayout 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:orientation="vertical" > 
 
  <FrameLayout 
   android:id="@android:id/tabcontent" 
   android:layout_width="match_parent" 
   android:layout_height="match_parent" 
   android:layout_gravity="top" > 
  </FrameLayout> 
 </LinearLayout> 
 <TabWidget 
  android:id="@android:id/tabs" 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:layout_gravity="bottom"> 
 </TabWidget> 
</TabHost> 

以上三种方式在Android4.2下测试通过。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。