关于Android studio程序开发TabHost选项卡组件使用心得

关于TabHost选项卡组件使用心得


#来记录自己学习的点滴,也为了更好的复习知识

  1. Famelayout (帧布局)

    Framelayout继承自ViewGroup,使用FrameLayout布局管理器时,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们全部放在这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分或全部遮挡,即帧布局的大小由子元素中尺寸最大的那个子元素来决定。如果子元素一样大,同一时刻只能看到最上面的子元素。
    如下图是使用Famelayout (帧布局)制作的霓虹灯效果,本质是Famelayout布局文件中使用不同大小的TextView组件,设置不同的背景颜色即可。使用帧布局做出的霓虹灯效果

  2. TabHost组件

    TabHost继承自FrameLayout,它是个带Tab选项卡的容器,包含TabWidget和FrameLayout两个部分,TabWidget是每个Tab选项卡的标签按钮,FrameLayout是每个Tab选项卡的内容,在Android应用开发中提供了继承TabActivity和继承Activity两种实现方法,其中TabActivity已经过时,我主要学习Activity的实现方法。
    *Tab选项卡的UI布局文件的设计需要遵循下表的要求进行定义:

属性/方法名说明
TabHoste可自定义id
TabWidget必须设置android:id为@android:id/tabs
FrameLayout必须设置android:id为@android:id/tabcontent
  1. TabWidget组件

    TabWidget组件定义的选项标签按钮可以放在UI的上部或底部,本例中是放在U上的上部,也可以使用相对布局方式将它定义在UI的底部。

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <!--如果想改为让选项置于UI底部,需将上句话删去,因为相对布局不需要规定水平还是垂直-->
        <TabWidget
            android:layout_alignParentBottom="true"
            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="200dp">
            <!--设置红色背景-->
            <LinearLayout
                android:id="@+id/layoutred"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#ffff00"
                android:orientation="horizontal">
            </LinearLayout>
            <!--设置黄色背景-->
            <LinearLayout
                android:id="@+id/layoutyellow"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#00ffff"
                android:orientation="horizontal">
            </LinearLayout>
        </FrameLayout>
    </LinearLayout>

如果要将选项卡标签放在U的底部,只需要修改上述代码的第6行,将其布局方式修改为相对布局RelativeLayout,然后在TabWidget中置于父类底部即可,附上放在底部代码:

 android:layout_alignParentBottom="true"

标签放在下面以后实现的结果如下图所示,这里选项标签我已经放在下面了,但上面的代码实现以后标签是放在上面的
标签放在下面以后实现的结果如图所示,这里选项标签我已经放在下面了,但上面的代码实现以后标签是放在上面的
4. 功能代码的实现
依照上面的.mxl文件,实现当用户单击“红色”选项卡时,显示layout-red布局中定义的内容;当用当用户单击“黄色”选项卡时,显示layout-yellow布局中定义的内容

public class MainActivity extends Activity {
 TabHost tabhost;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     this.setContentView(R.layout.setcolor);
     intiView();
     tabhost.setup();//加载tabhost
     TabHost.TabSpec tsRed=tabhost.newTabSpec("tabred").setIndicator("红色").setContent(R.id.layoutred);
     //TabSpec就是用来设置TabHost的每个选项
    //newTabSpec 设置该tabhost的标签(就是在选项上显示的内容)
    //setIndicator 显示的文字或图片 
    //setContent 下面显示的内容,这里的意思是让它显示layout里红色背景的内容
     tabhost.addTab(tsRed);
     TabHost.TabSpec tsYellow=tabhost.newTabSpec("tabyellow").setIndicator("黄色").setContent(R.id.layoutyellow);
     tabhost.addTab(tsYellow);
 }
 void intiView(){
     tabhost= (TabHost) this.findViewById(R.id.myTabhost);
 }
}
  1. TabHost组件的应用——考试界面的实现
    这里使用TabHost来换题
    这里单击TabHost组件来实现换题,如下图换到了判断题如图换到了判断题
    这是我的第一篇博客,若有机会我会在下一篇博客讲讲这里埋得坑——考试界面的实现的具体过程,希望能抛砖引玉,希望各位前辈能给我一些指点,分享一些成长心得,不胜感激。
    注:尤其感谢中国大学Mocc网课《移动程序终端设计》,我只是对老师上课讲的内容稍加整理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值