首页 > 代码库 > FragmentTabHost的使用方法总结
FragmentTabHost的使用方法总结
在开发商城上中时为了实现底部导航栏使用了fragmentTabHost方法,总结如下:
1、Activity必须继承fragmentActivity方法。
2.必须调用setup()方法
3.添加TabSpec
具体代码如下:
主要布局:
activity_main:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<FrameLayout
android:id="@+id/realtabcontent"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:background="@color/colorAccent"
/>
<android.support.v4.app.FragmentTabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0" />
</android.support.v4.app.FragmentTabHost>
</LinearLayout>
主要代码逻辑:
public class MainActivity extends AppCompatActivity {
private FragmentTabHost mTabHost;
private LayoutInflater mInflater;
private List<Tab> mTabs = new ArrayList<>(5);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initTab();
}
private void initTab() {
Tab tab_home = new Tab(HomeFragment.class,R.string.home,R.mipmap.icon_home);
Tab tab_hot = new Tab(HotFragment.class,R.string.hot,R.mipmap.icon_hot);
Tab tab_category = new Tab(CategoryFragment.class,R.string.catagory,R.mipmap.icon_discover);
Tab tab_cart = new Tab(CartFragment.class,R.string.cart,R.mipmap.icon_cart);
Tab tab_mine= new Tab(MineFragment.class,R.string.mine,R.mipmap.icon_user);
mTabs.add(tab_home);
mTabs.add(tab_hot);
mTabs.add(tab_category);
mTabs.add(tab_cart);
mTabs.add(tab_mine);
mInflater = LayoutInflater.from(this);
mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
mTabHost.setup(this,getSupportFragmentManager(),R.id.realtabcontent);
for(Tab tab : mTabs){
TabHost.TabSpec tabSpec = mTabHost.newTabSpec(getString(tab.getTitle()));
tabSpec.setIndicator( buildindictor(tab));
mTabHost.addTab(tabSpec,tab.getFragment(),null);
}
}
private View buildindictor(Tab tab){
View view = mInflater.inflate(R.layout.tab_indication,null);
ImageView img = (ImageView) findViewById(R.id.icon_tab);
TextView txt = (TextView) findViewById(R.id.txt_indicator);
img.setBackgroundResource(tab.getIcon());
txt.setText(tab.getTitle());
return view;
}
}
在新建CartFragment:\CategoryFragment;\.HomeFragment;\.HotFragment;\.MineFragmen类,都必须继承v4包下的Fragmentpublic class HotFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_hot,container,false);
}
}
FragmentTabHost的使用方法总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。