Fragment 的使用

来源:互联网 发布:淘宝虚拟物品退款诈骗 编辑:程序博客网 时间:2024/06/01 23:55

博客目的: 分享Fragment的使用方法
一、我们创建一个Fragment_item的布局,来编写Fragment中需要显示的布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="BBC新闻页面"        android:textColor="@color/dataTextColor"        android:textSize="20dp"        android:layout_centerInParent="true"        /></RelativeLayout>

这里只是简单的在布局中间显示了一个TextView用来区分Fragment界面

二、创建一个类继承Fragment
注意:这里首先需要注意,Fragment有两个。一个是app包下的Fragment另一个则是V4包下的,那么两者如何选择呢?其实两个最大的不同就是兼容性的问题,app包下只能在Android版本3.0之后才能使用,二V4包则兼容到最低版本1.6,如何选择就看具体的需求了。不过现在的Android手机版本低于3.0的已经不多见了。
1、我们定义一个类继承Fragment

//我这里使用的是app包下的Fragmentpublic class BbcNewsFragment extends Fragment{    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {    //将布局填充到Fragment        View view = inflater.inflate(R.layout.fragment_bbcnews_item, container, false);    //然后将View返回        return view;    }}

这里只是简单使用,在实际开发当中可能会根据业务需求做一些Fragment生命周期的操作。

三、如何在Activity中使用Fragment
1、在activity中使用一个布局来控制我们Fragment显示的位置

<FrameLayout            android:id="@+id/fl_fragment_show"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:layout_below="@id/viewpager_tab">        </FrameLayout>

我是用了一个FrameLayout来控制Fragment显示的位置,这里因为我的XML布局当中还有很多的控件,所以没有贴出完整的代码,也只需要知道你想在哪个位置显示Fragment就在哪添加一个显示的布局控件就可以了。

四、在Activity中显示

//拿到要显示的Fragment对象实例        bbcSixminutesFragment = new BbcSixminutesFragment();// 获取Fragment的管理者        fragmentTransaction = getFragmentManager().beginTransaction();//将Fragment add到之前写好要显示位置的控件上,开启事物        fragmentTransaction.add(R.id.fl_fragment_show,fragment).commit();

这里需要注意的是app包下的Fragment和V4包下的在获取Fragment的管理者这一步操作中还是有一定的区别,app包下Fragment是getFragmentManager而V4包下则使用的是getSupportFragmentManager()。

原创粉丝点击