Android Fragment的复用

原创 2018年04月15日 19:31:24

        在多个标题栏对应的Fragment中可能会遇到相同的布局。如果对每一个标题栏对应的Fragment都做网络请求以及适配器的代码编写未免显得太过冗余。这时可以在作为用下面的方法减少大量的代码,节省更多开发的时间。


在进行Fragment复用的Activity或Fragment中的添加如下代码:

RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
StringRequest stringRequest = new StringRequest(Urls.BASE_CHINA, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
    //添加Fragment的集合
        fragmentList = new ArrayList<>();
    //添加标题栏标题的集合
        titlelist = new ArrayList<>();
        for (int i = 0; i < tablist.size(); i++) {
            String title = tablist.get(i).getTitle();
      //添加标题
            titlelist.add(title);
      //获取到每一个Fragment对应的url
            utlList.add(tablist.get(i).getUrl());
      //添加作为复用的Fragment对应的url
            fragmentList.add(JingBianFragment.newInstance(utlList.get(i)));


        }
    //Fragment与Tablayout联用的适配器适配
        TabAdapter tabAdapter = new TabAdapter(getChildFragmentManager(), titlelist, fragmentList);
        vp.setCurrentItem(0);
        vp.setAdapter(tabAdapter);
        tab.setupWithViewPager(vp);

    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {

    }
});
requestQueue.add(stringRequest);
在作为具体复用的Fragment中:

//定义一个静态方法

public static JingBianFragment newInstance(String url){
    JingBianFragment jingBianFragment = new JingBianFragment();
    Bundle bundle = new Bundle();
    bundle.putString("key",url);
    jingBianFragment.setArguments(bundle);
    return jingBianFragment;
}
//在初始化数据的方法中添加这一行代码:

String key = (String) getArguments().get("key");

简单几步解决多个Fragment的代码编写。

Android之ViewPager,Fragment知识全讲

本课程讲解Android中的ViewPager,Fragment及Android触摸事件的处理,ViewPager和Fragment相互嵌套冲突处理
  • 2016年09月14日 08:23

Android动态加载fragment(fragment复用)

  • 2015年12月29日 00:16
  • 1.06MB
  • 下载

Fragment重用详解

Android是在Android 3.0 (API level 11)开始引入Fragment的。   可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期...
  • qq_16654471
  • qq_16654471
  • 2015-06-19 10:31:03
  • 1479

fragment复用==

public class HomePage extends Fragment { private TabLayout tabLayout; private ViewPager view...
  • qq_38997853
  • qq_38997853
  • 2017-07-28 08:43:54
  • 540

fragment复用:多个activity共用一个Fragment

问题一:Fragment如何封装成可复用的形式 ? 问题二:activity如何引用现成的fragment ? 1.先回答第一个问题:    直接上代码,代码是项目中的,没有另写demo...
  • u010477502
  • u010477502
  • 2015-05-12 17:19:46
  • 2740

Android viewpager+fragment实现动态加载碎片(fragment重复使用)

距离上次发博客好像已经至少有两个月的时间了,不禁感叹时间过得真快,也是因为项目一直在忙,所以没来发博客,今天有闲情就来一发。好了,废话不多说,今天讲的是fragment复用的问题,提到碎片,相信大家都...
  • u010214991
  • u010214991
  • 2015-12-28 23:51:16
  • 9281

fragment复用

//添加适配 TabPageIndicator tpi = (TabPageIndicator) findViewById(R.id.tpi); // 得到view...
  • Xc8278
  • Xc8278
  • 2016-10-26 15:07:35
  • 475

Fragment 结合viewpager使用 和Fragment 多次套用

  • 2015年04月29日 16:23
  • 2.1MB
  • 下载

android TabLayout+ViewPager+复用一个fragment

  • 2018年03月06日 15:35
  • 21.11MB
  • 下载

Android中利用newInstance()方法实例化fragment

Android是在Android 3.0 (API level 11)开始引入Fragment的。Fragment可以使你能够将activity分离成多个可重用的组件,每个都有它自己的生命周期和UI。...
  • Afanbaby
  • Afanbaby
  • 2016-08-15 14:35:52
  • 6645
收藏助手
不良信息举报
您举报文章:Android Fragment的复用
举报原因:
原因补充:

(最多只允许输入30个字)