Android程序开发之自定义设置TabHost,TabWidget样式

时间:2021-05-19

先看效果:


        京东商城底部菜单栏


      新浪微博底部菜单栏

本次学习效果图:

第一,主布局文件(启动页main.xml,位于res/layout目录下)代码

<?xml version="." encoding="utf-"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:id="@+id/tabhost"><LinearLayout android:id="@+id/linear"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TabWidget android:id="@android:id/tabs"android:layout_width="fill_parent"android:layout_height="wrap_content"></TabWidget><FrameLayout android:id="@android:id/tabcontent"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutandroid:id="@+id/tab"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextView android:id="@+id/tab_txt"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:text="你"/></LinearLayout><LinearLayoutandroid:id="@+id/tab"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextView android:id="@+id/tab_txt"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:text="我"/></LinearLayout><LinearLayoutandroid:id="@+id/tab"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextView android:id="@+id/tab_txt"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:text="他"/></LinearLayout><LinearLayoutandroid:id="@+id/tab"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextView android:id="@+id/tab_txt"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:text="我们"/></LinearLayout></FrameLayout></LinearLayout></TabHost>

第二,创建显示此TabWidget的布局tabmini.xml(位于res/layout目录下)

<?xml version="." encoding="utf-"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:paddingTop="dp"android:paddingLeft="dp"android:paddingRight="dp"android:background="#CEC" ><TextView android:id="@+id/tab_label"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_centerInParent="true"android:gravity="center"android:textColor="#"android:textStyle="bold"android:background="@drawable/tabmini"/></RelativeLayout>

第三,在drawable里面创建一个selector,命名tabmini.xml,用来点击TabHost的一个tab时TextView的变化

<?xml version="." encoding="utf-"?><selector xmlns:android="http://schemas.android.com/apk/res/android" ><item android:state_selected="true"android:drawable="@drawable/add_managebg_down"/> <item android:state_selected="false" android:drawable="@drawable/add_managebg"/></selector>

第四,java代码,在Activity里实现TabHost

package com.example.androidtest____meihuatubiao;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.widget.TabHost;import android.widget.TextView;public class Main extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);View niTab=(View)LayoutInflater.from(this).inflate(R.layout.tabmini, null);TextView niTxt=(TextView)niTab.findViewById(R.id.tab_label);niTxt.setText("ni");View woTab=(View)LayoutInflater.from(this).inflate(R.layout.tabmini, null);TextView woTxt=(TextView)woTab.findViewById(R.id.tab_label);woTxt.setText("wo");View taTab=(View)LayoutInflater.from(this).inflate(R.layout.tabmini, null);TextView taTxt=(TextView)taTab.findViewById(R.id.tab_label);taTxt.setText("ta");View weTab=(View)LayoutInflater.from(this).inflate(R.layout.tabmini, null);TextView weTxt=(TextView)weTab.findViewById(R.id.tab_label);weTxt.setText("we");TabHost tabs=(TabHost)findViewById(R.id.tabhost);tabs.setup();tabs.addTab(tabs.newTabSpec("niTab").setContent(R.id.tab).setIndicator(niTab));tabs.addTab(tabs.newTabSpec("woTab").setContent(R.id.tab).setIndicator(woTab));tabs.addTab(tabs.newTabSpec("taTab").setContent(R.id.tab).setIndicator(taTab));tabs.addTab(tabs.newTabSpec("weTab").setContent(R.id.tab).setIndicator(weTab));}}

以上内容是小编给大家分享的Android程序开发之自定义设置TabHost,TabWidget样式,希望对大家有所帮助!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章