FragmentTabHost+Fragment的使用
来源:互联网 发布:php 自动化部署工具 编辑:程序博客网 时间:2024/05/21 22:59
UI布局思路
1,上面是一个Fragment2,下面是一个FragmentTabHost,但是中间有一个被ImageView覆盖FrameLayout weight="1" height="0dp"RelativeLayout FragmentTabHost ImageView centerInparent="true"
Activity中的思路
1,初始化FragmentTabHost2,判断版本号如果大于10,去除分隔线3,定义一个内部类MainTabInfo,用于存放 文本 图标 Fragment的字节码类4,创建一个泛型MainTabInfo的集合,将需要的数据存放在集合中5,遍历集合 1,使用FragmentTabHost创建一个指定的tab标签 2,加载一个tab标签的视图 3,给视图中的TextView绑定数据,文本和图标 4,mFragmentTabHost添加标签 1,可以给Fragment传递参数Bundle
UI代码
<FrameLayout android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> </FrameLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v4.app.FragmentTabHost android:id="@+id/fragment_tab_host" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v4.app.FragmentTabHost> <ImageView android:id="@+id/image_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:background="@drawable/btn_quickoption_selector"/> </RelativeLayout>
Activity中的代码
“`
/**
* 用于初始化FragmentTabhost
* 1,初始化FragmentTabHost
* 2,创建一个包含Fragment,文字,图标的集合
* 3,创建一个FragmentTabHost的标签
* 4,设置标签的视图
* 5,传递到Fragment的参数Bundle
* 6,添加标签到FragmentTabHost
*/
private void initFragmentTabHost() {
//1,初始化FragmentTabhost mFragmentTabHost.setup(this,getSupportFragmentManager(),R.id.fragment_container); if(Build.VERSION.SDK_INT > 10){ //去除分隔线 mFragmentTabHost.getTabWidget().setShowDividers(0); } //2,创建一个包含Fragment 文字 图标的集合 List<MainTabInfo> list = new ArrayList<>(); list.add(new MainTabInfo("综合",R.drawable.tab_icon_new, NewsTabFragment.class)); list.add(new MainTabInfo("动弹",R.drawable.tab_icon_tweet,TweetTabFragment.class)); list.add(new MainTabInfo("",R.drawable.tab_icon_new,FindTabFragment.class)); list.add(new MainTabInfo("发现",R.drawable.tab_icon_explore,FindTabFragment.class)); list.add(new MainTabInfo("我",R.drawable.tab_icon_me,MeTabFragment.class)); for (int i = 0; i < list.size(); i++) { //3,使用FragmentTabHost创建一个标签 TabHost.TabSpec tabSpec = mFragmentTabHost.newTabSpec(list.get(i).title); //4,加载一个视图 View tabView = View.inflate(MainActivity.this, R.layout.main_tab_item, null); //获取里面的文本控件 TextView textView = (TextView) tabView.findViewById(R.id.tab_title); //给文本控件设置标题和图标 textView.setText(list.get(i).title); textView.setCompoundDrawablesWithIntrinsicBounds(0,list.get(i).resId,0,0); //5,给指定标签添加视图 tabSpec.setIndicator(tabView); //6,向Fragment传递参数 Bundle bundle = new Bundle(); bundle.putString("args","我是第"+i+"个参数"); //7,FragmentTabHost添加指定的标签 mFragmentTabHost.addTab(tabSpec,list.get(i).fragmentClass,bundle); //8,隐藏第三个视图 if(i ==2 ){ tabView.setVisibility(View.INVISIBLE); } }
main_tab_item中的布局代码<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:textColor="@color/primarybar_txt" android:id="@+id/tab_title" android:layout_centerInParent="true" android:gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:visibility="gone" android:text="10" android:textColor="#f00" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content"/></RelativeLayout>
0 0
- FragmentTabHost+Fragment的使用
- FragmentTabhost+fragment+viewpager+FragmentActivity的使用
- Fragment和FragmentTabHost的混合使用
- 【FragmentTabHost】FragmentTabHost的使用
- 使用FragmentTabHost+Fragment打造布局
- FragmentTabhost的使用(保存fragment的状态)
- 使用FragmentTabHost的时候,Fragment不能保持状态的解决方案
- Tab菜单栏:FragmentTabHost&ViewPager&Fragment的结合使用
- FragmentTabHost+fragment中获得fragment的对象
- 主界面的Fragment切换之使用FragmentTabHost配合切换Fragment
- Fragment+FragmentTabHost
- drawerNavigation被fragment overlay, FragmentTabHost使用
- 使用FragmentTabHost+Fragment+viewpager 实现滑动分页
- 使用FragmentTabHost+Fragment+viewpager 实现滑动分页
- Android学习之FragmentTabHost配合Fragment使用
- 使用FragmentTabHost+Fragment+viewpager 实现滑动分页
- FragmentTabHost的使用
- FragmentTabHost的使用
- 利用Gunicorn和Nginx布局Django网站
- 209. Minimum Size Subarray Sum
- Picking up an OOP(1) -JAVA-Inheritance
- 21分钟 MySQL 入门教程
- MySQL 数据类型
- FragmentTabHost+Fragment的使用
- BaseFragment的一般抽取
- 自动抢红包,自动安装原理之AccessibilityService
- 工厂设计模式
- Android微信自动回复功能
- 微信自动回复和自动抢红包实现原理(一):AccessibilityService的介绍和配置
- 微信自动回复和自动抢红包实现原理(二):自动回复
- 微信自动回复和自动抢红包实现原理(三):自动抢红包
- BZOJ1043 [HAOI2008]下落的圆盘