TabHost两种实现方式

来源:互联网 发布:求抱抱软件怎么样 编辑:程序博客网 时间:2024/04/27 16:18
第一种:继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost。只要定义具体Tab内容布局就行了.

xml布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"><LinearLayout android:id="@+id/widget_layout_Blue"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical" ><EditText android:id="@+id/widget34" android:layout_width="fill_parent"android:layout_height="wrap_content" android:text="EditText"android:textSize="18sp"></EditText><Button android:id="@+id/widget30" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="Button"></Button></LinearLayout><LinearLayout android:id="@+id/widget_layout_red"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical"  ><AnalogClock android:id="@+id/widget36"android:layout_width="wrap_content" android:layout_height="wrap_content"></AnalogClock></LinearLayout><LinearLayout android:id="@+id/widget_layout_green"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical"><RadioGroup android:id="@+id/widget43"android:layout_width="166px" android:layout_height="98px"android:orientation="vertical"><RadioButton android:id="@+id/widget44"android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="RadioButton"></RadioButton><RadioButton android:id="@+id/widget45"android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="RadioButton"></RadioButton></RadioGroup></LinearLayout></FrameLayout>java代码:super.onCreate(savedInstanceState);myTabhost=this.getTabHost();//get TabhostLayoutInflater.from(this).inflate(R.layout.main, myTabhost.getTabContentView(), true);myTabhost.setBackgroundColor(Color.argb(150, 22, 70, 150));myTabhost.addTab(myTabhost.newTabSpec("One")// make a new Tab.setIndicator("A")// set the Title and Icon.setContent(R.id.widget_layout_Blue));// set the layoutmyTabhost.addTab(myTabhost.newTabSpec("Two")// make a new Tab.setIndicator("B",getResources().getDrawable(R.drawable.mumule))// set the Title and Icon.setContent(R.id.widget_layout_green));// set the layoutmyTabhost.addTab(myTabhost.newTabSpec("Three")// make a new Tab.setIndicator("C",getResources().getDrawable(R.drawable.notepad))// set the Title and Icon.setContent(R.id.widget_layout_red));
第二种:不用继承TabActivity,在布局文件中定义TabHost即可,但是TabWidget的id必须是
@android:id/tabs,FrameLayout的id必须是@android:id/tabcontent。TabHost的id可以自定义.


<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:id="@+id/hometabs"android:orientation="vertical"    android:layout_width="fill_parent"      android:layout_height="fill_parent">     <TabHost android:id="@+id/tabhost"     android:layout_width="wrap_content"     android:layout_height="wrap_content">     <LinearLayoutandroid:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent">     <TabWidget android:id="@android:id/tabs"       android:orientation="horizontal"      android:layout_width="wrap_content"      android:layout_height="wrap_content">        </TabWidget>          <FrameLayout android:id="@android:id/tabcontent"      android:layout_width="wrap_content"      android:layout_height="wrap_content">      <TextView android:id="@+id/view1"        android:layout_width="fill_parent"        android:layout_height="fill_parent"/>    <TextView android:id="@+id/view2"        android:layout_width="fill_parent"        android:layout_height="fill_parent"/>    <TextView android:id="@+id/view3"        android:layout_width="fill_parent"        android:layout_height="fill_parent"/>     </FrameLayout>          </LinearLayout>    </TabHost></LinearLayout>java代码:protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.hometabs);                TabHost tabHost = (TabHost) findViewById(R.id.tabhost);        tabHost.setup();        TabWidget tabWidget = tabHost.getTabWidget();                tabHost.addTab(tabHost.newTabSpec("tab1")                .setIndicator("tab1", getResources().getDrawable(R.drawable.mumule))                .setContent(R.id.view1));                tabHost.addTab(tabHost.newTabSpec("tab3")                .setIndicator("tab3")                .setContent(R.id.view3));                tabHost.addTab(tabHost.newTabSpec("tab2")                .setIndicator("tab2")                .setContent(R.id.view2));                final int tabs = tabWidget.getChildCount();        Log.i(TAG, "***tabWidget.getChildCount() : " + tabs);                final int tabWidth = 90;final int tabHeight = 45;for (int i = 0; i < tabs; i++) {/*final View view = tabWidget.getChildAt(i);view.getLayoutParams().width = tabWidth;view.getLayoutParams().height = tabHeight;final TextView tv = (TextView) view.findViewById(android.R.id.title);    tv.setTextColor(this.getResources().getColorStateList(android.R.color.black));    MarginLayoutParams tvMLP = (MarginLayoutParams)tv.getLayoutParams();    tvMLP.bottomMargin = 8;*/}}


0 0
原创粉丝点击