当前位置: 代码迷 >> Android >> android兑现页面下方的Tab效果
  详细解决方案

android兑现页面下方的Tab效果

热度:71   发布时间:2016-05-01 18:54:36.0
android实现页面下方的Tab效果

实现采用TabHost组件。
1、XML布局文件:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
? ? android:id="@android:id/tabhost"
? ? android:layout_width="fill_parent"
? ? android:layout_height="fill_parent">
? ? <LinearLayout
? ? ? ? android:orientation="vertical"
? ? ? ? android:layout_width="fill_parent"
? ? ? ? android:layout_height="fill_parent"
? ? ? ? android:padding="5dp">
? ? ? ? <FrameLayout
? ? ? ?android:gravity="bottom"
? ? ? ?android:layout_weight="1"
? ? ? ? ? ? android:id="@android:id/tabcontent" ? ? ? ? ?
? ? ? ? ? ? android:layout_width="fill_parent"
? ? ? ? ? ? android:layout_height="fill_parent"
? ? ? ? ? ? android:padding="5dp" />
? ? ? ? <TabWidget
? ? ? ? android:layout_weight="0"
? ? ? ? ? ? android:id="@android:id/tabs"
? ? ? ? ? ? android:layout_width="fill_parent"
? ? ? ? ? ? android:layout_height="wrap_content" />
? ? ? ??
? ? </LinearLayout>
</TabHost>
注意<FrameLayout>标签和<TabWidget>标签的顺序。
android:layout_weight的设置使位置靠下,否则默认是在上面的。
2、activity文件


@Override
? ? public void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? setContentView(R.layout.maintabs);
? ? ? ? // Resource object to get Drawables
? ? ? ? Resources res = getResources();?
? ? ? ? tabHost = getTabHost(); ?
? ? ? ? // Resusable TabSpec for each tab
? ? ? ? TabHost.TabSpec spec; ?
? ? ? ? // Reusable Intent for each tab
? ? ? ? Intent intent; ?


? ? ? ? // Create an Intent to launch an Activity for the tab (to be reused)
? ? ? ? intent = new Intent().setClass(this,HomeTab.class);


? ? ? ? // Initialize a TabSpec for each tab and add it to the TabHost
? ? ? ? String str_tabhome=res.getString(R.string.tab_home);
? ? ? ? spec = tabHost.newTabSpec(str_tabhome).setIndicator(str_tabhome,res.getDrawable(R.drawable.ic_tab_artists))
? ? ? ? ? ? ? ? ? ? ? ?.setContent(intent);
? ? ? ? tabHost.addTab(spec); ? ?
? ? ? ??
? ? ? ?String str_tab02=res.getString(R.string.tab02);
? ? ? ? spec = tabHost.newTabSpec(str_tab02).setIndicator(str_tab02,res.getDrawable(R.drawable.ic_tab_artists))
? ? ? ? ? ? ? ? ? ? ? .setContent(intent);
? ? ? ? tabHost.addTab(spec); ??


? ? ? ? tabHost.setCurrentTab(2);
? ? ? ?
? ? }

3、效果如下:

  相关解决方案