zoukankan      html  css  js  c++  java
  • viewPager + fragment

    有两种实现方式,一种是 fragmentActivity + FragmentPagerAdapter (Fragment,FragmentManager需要导包:android.support.v4.app.)

    另一种是 Activity + PagerAdapter(Fragment,FragmentManager需要导包:android.app.)

    1. fragmentActivity + FragmentPagerAdapter

    自定义FragmentPagerAdapter只需要重写: getItem(),getCount() 方法

    2. Activity + PagerAdapter

    自定义的 PagerAdapter 需要重写以下方法:

    instantiateItem(ViewGroup, int)
    destroyItem(ViewGroup, int, Object)  //记得删除 super.destroyItem(container, position, object);否则报异常:UnsupportedOperationException,原因查看源码
    getCount()
    isViewFromObject(View, Object)
    

     需要添加 Title 时还需要重写 getPageTitle() 方法

    重写 :instantiateItem(ViewGroup, int)

            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                Fragment fragment = mList.get(position);
                if (!fragment.isAdded()) {
                    FragmentTransaction saction = mFragManager.beginTransaction();
                    saction.add(fragment, fragment.getClass().getSimpleName());
                    //只有commit才会执行
                    saction.commit();
                    //executePendingTransactions--立即执行 
                    mFragManager.executePendingTransactions();
                }
                View view = fragment.getView();
                container.addView(view);
                return view;
            }
    

     重写 :isViewFromObject(View, Object)

            @Override
            public boolean isViewFromObject(View view, Object object) {
                return view == object;
            }
    

    注意:自定义Fragemt 时,必须重写 onCreateView() 方法

    使用FragmentTransaction,移除fragment时需要addtobackstack()否则无法回退(fragement 在移除时被销毁)

     

  • 相关阅读:
    Azure Bicep(三)变量控制
    FreeRedis分布式锁实现以及使用
    动态表单存储设计
    SixLabors.ImageSharp 实践小结
    你了解一条sql的执行顺序吗
    理解ASP.NET Core
    理解ASP.NET Core
    产品说,我只需要一个有亿点复杂的查询界面
    学习大数据可以考哪些证书(附资料)
    数据治理之元数据管理的利器——Atlas入门宝典
  • 原文地址:https://www.cnblogs.com/zhy7104/p/6039731.html
Copyright © 2011-2022 走看看