基本概念:Fragment是Android3.0后引入的一个新的API,他出现的初衷是为了适应大屏幕的平板电脑, 当然现在他仍然是平板APP UI设计的宠儿,而且我们普通手机开发也会加入这个Fragment, 我们可以把他看成一个小型的Activity,又称Activity片段/碎片!想想,如果一个很大的界面,我们 就一个布局,写起界面来会有多麻烦,而且如果组件多的话是管理起来也很麻烦!而使用Fragment 我们可以把屏幕划分成几块,然后进行分组,进行一个模块化的管理!从而可以更加方便的在 运行过程中动态地更新Activity的用户界面!另外Fragment并不能单独使用,他需要嵌套在Activity 中使用,尽管他拥有自己的生命周期,但是还是会受到宿主Activity的生命周期的影响,比如Activity 被destory销毁了,他也会跟着销毁!
layout嵌入布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:app="https://schemas.android.com/apk/res-auto" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ui.MainActivity" android:orientation="vertical"> <!--子页面的容器--> <LinearLayout android:id="@+id/ll_main_content" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="vertical"/> <!--底部tab切换--> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg_layout_border_top" android:paddingTop="10dp" android:orientation="horizontal"> <!--主页--> <RadioButton android:id="@+id/rb_main_home" android:layout_width="0dp" android:layout_height="wrap_content" android:button="@null" android:layout_weight="1" android:drawableTop="@drawable/selector_main_rb_home" android:textColor="@drawable/selector_main_rb_text" android:textAlignment="center" android:gravity="center" android:text="主页"/> <!--订单--> <RadioButton android:id="@+id/rb_main_order" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/selector_main_rb_order" android:textColor="@drawable/selector_main_rb_text" android:textAlignment="center" android:gravity="center" android:text="订单"/> <!--我的--> <RadioButton android:id="@+id/rb_main_user" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/selector_main_rb_user" android:textColor="@drawable/selector_main_rb_text" android:textAlignment="center" android:gravity="center" android:text="我的"/> </RadioGroup> </LinearLayout>
声明Fragment数组
private Fragment[] fragments = new Fragment[]{null,null,null};//存放Fragment
Fragment切换索引赋值方法
/* * 方法 - 切换Fragment * @param */ private void switchFragment(int FragmentIndex){ //在Activity中显示Fragment //1、获取Fragment的管理器 FragmentManager fragmentManager = this.getSupportFragmentManager(); //2、开启Fragment事务 FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); //懒加载 - 如果需要显示的Fragment为null,就new,并且添加到Fragment事务中 if (fragments[FragmentIndex] == null){ switch (FragmentIndex){ case 0 : fragments[FragmentIndex] = new HomeFragment(); break; case 1: fragments[FragmentIndex] = new OderFragment(); break; case 2: fragments[FragmentIndex] = new UserFragment(); break; } //添加Fragment对象到FragmentTransaction事务中 //参数:显示Fragmentd的容器ID,Fragment对象 fragmentTransaction.add(R.id.ll_main_content,fragments[FragmentIndex]); } //隐藏其他Fragment for (int i = 0;i < fragments.length;i++){ if (FragmentIndex != i && fragments[i] != null){ //隐藏指定的Fragment fragmentTransaction.hide(fragments[i]); } } //3、把要显示的Fragment的对象添加到FragmentTransaction事务中 // HomeFragment homeFragment = new HomeFragment(); // fragmentTransaction.add(R.id.ll_main_content,homeFragment); //4、显示Fragment fragmentTransaction.show(fragments[FragmentIndex]); //5、提交事务 fragmentTransaction.commit(); }
//设置点击事件的监听
private void setViewEventListener() { //主页 rbHome.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { switchFragment(0); } }); //订单 rbOder.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { switchFragment(1); } }); //我的 rbUser.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { switchFragment(2); } }); }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算