Android笔记之FragmentTabHost实现选项卡
生活随笔
收集整理的這篇文章主要介紹了
Android笔记之FragmentTabHost实现选项卡
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
FragmentTabHost
API:http://developer.android.com/reference/android/support/v4/app/FragmentTabHost.html
1、main.xml文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><FrameLayoutandroid:id="@+id/realtabcontent"android:layout_width="fill_parent"android:layout_height="0dip"android:layout_weight="1" /><!-- tabhost裝載5個tab的容器 --><android.support.v4.app.FragmentTabHostandroid:id="@android:id/tabhost"android:layout_width="fill_parent"android:layout_height="wrap_content" ><FrameLayoutandroid:id="@android:id/tabcontent"android:layout_width="0dp"android:layout_height="0dp"android:layout_weight="0" /></android.support.v4.app.FragmentTabHost></LinearLayout>2、FragmentActivity中使用fragmenttabhost
(1)TabSpec的實例化:TabSpec tabSpec = mTabHost.newTabSpec(String tag).setIndicator(.....);
- setIndicator(View view); ? //Specify a view as the tab indicator.
- setIndicator(CharSequence label, Drawable icon)? //Specify a label and icon as the tab indicator. label即為選項卡的顯示的文本
- setIndicator( CharSequence label)? //Specify a label as the tab indicator.
主要代碼:
import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTabHost;/*** This demonstrates how you can implement switching between the tabs of a* TabHost through fragments, using FragmentTabHost.*/ public class MainActivity extends FragmentActivity {private FragmentTabHost mTabHost;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);mTabHost.addTab(mTabHost.newTabSpec("首頁").setIndicator("Simple"),fragment_1.class, null);mTabHost.addTab(mTabHost.newTabSpec("分類").setIndicator("Contacts"),fragment_1.class, null);mTabHost.addTab(mTabHost.newTabSpec("排行").setIndicator("Custom"),fragment_1.class, null);mTabHost.addTab(mTabHost.newTabSpec("熱門").setIndicator("Throttle"),fragment_1.class, null);mTabHost.addTab(mTabHost.newTabSpec("設置").setIndicator("Throttle"),fragment_1.class, null);} } fragment_X.class的代碼 import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup;public class fragment_1 extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View v = inflater.inflate(R.layout.fragment_1, container, false);return v;} }
3、fragment下使用fragmentabhost
?(1)fragment_1本身不需要布局文件
(2)選項卡默認在頂部
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTabHost;public class fragment_1 extends Fragment {private FragmentTabHost mTabHost;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {mTabHost = new FragmentTabHost(getActivity());mTabHost.setup(getActivity(), getChildFragmentManager(), R.layout.fragment1/59);mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),subfragment_1.class, null);mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),subfragment_1.class, null);mTabHost.addTab(mTabHost.newTabSpec("custom").setIndicator("Custom"),subfragment_1.class, null);return mTabHost;}@Overridepublic void onDestroyView() {super.onDestroyView();mTabHost = null;} }?
?
4、其他函數
mTabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.selector_tab_background);Done!
?
?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/xingyyy/p/3322011.html
總結
以上是生活随笔為你收集整理的Android笔记之FragmentTabHost实现选项卡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机与笔记本蓝牙配对
- 下一篇: 同一服务器 数据库间 不同表 的查询