Android工作笔记_Fragment底部几个按钮做主页的实现技术点

来源:互联网 发布:数据可视化职位 编辑:程序博客网 时间:2024/06/14 22:00

示例图


一、Fragment页面状态保存方式。

方法:在每个Fragment中的onCreateView()方法写关键代码如下。

@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {/** 当前fragment的view */if (rootView != null) {/* * 缓存的rootView需要判断是否已经被加过parent, * 如果有parent需要从parent删除,要不然会发生这个rootview已经有parent的错误。 */ViewGroup parent = (ViewGroup) rootView.getParent();if (parent != null) {parent.removeView(rootView);}return rootView;}/* 之前没有创建过View,开始填充view并设置相关子控件 */rootView = inflater.inflate(R.layout.fragment_first, null);return rootView;}
二、解决重新跳转回含有若干个Fragment的Activity时,指定显示第几个Fragment。

步骤1:在AndroidManifest.xml文件写,设置单例属性

<!-- 首页 -->        <activity            android:name="com.camore.activity.MainActivity"            android:launchMode="singleTask" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>
步骤2:在Activity中设置Intent跳转时要走的onNewIntent方法。

@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);int index = intent.getIntExtra("index", 0);((RadioButton) radio_group.getChildAt(index)).setChecked(true);}
三、实现底部首页四个按钮的Fragment避免重复创建对象方法。

方法:在四个单选按钮的OnCheckedChangeListener中添加如下代码。

/* 设置跳转那个fragment页面 */Fragment mFragment = fragmentManager.findFragmentByTag(titleArr[switchid]);FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();if (mFragment != null) {fragmentTransaction.detach(mFragment);}if (mFragment != null) {fragmentTransaction.attach(mFragment);} else {switch (switchid) {case 0:mFragment = new FirstFragment();break;case 1:mFragment = new ConsultFragment();break;case 2:mFragment = new ShopFragment();break;case 3:mFragment = new MyFragment();break;}fragmentTransaction.add(R.id.tabcontent, mFragment,titleArr[switchid]);}fragmentTransaction.commitAllowingStateLoss();
Demo下载地址如下:http://download.csdn.net/detail/zhongcongxu01/8199993






0 0
原创粉丝点击