关于RecycleView嵌套Viewpager再嵌套RecycleView高度不适配的问题

为啥要写这个博客呢,一呢是记录这个问题,二呢就是不想让遇到同样问题的小伙伴,也花费很多的时间去解决,其实很简单,但是提醒大家一点,很重要的有点,看别人的解决方案,不要只是一味的复制粘贴,仔细阅读作者的思路,这样你才会真正解决问题,具体的解决办法,看这个链接全网正真解决的博客,看头像还是个美女哈.
接下来是我说的重点,咣咣咣,敲黑板,划重点了,注意听讲哦,就是里面关于这段的代码,作者是这样写的,

public SecurityInfoFragment(CustomViewpager vp) {
        this.vp = vp;
    }
 
 
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fg_sc_filght_info, null);
        ButterKnife.bind(this, view);
        vp.setObjectForPosition(view,1);
        return view;
    
————————————————
版权声明:本文为CSDN博主「qq_34972666」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34972666/article/details/52386999

== vp.setObjectForPosition(view,1);,就是这句代码很关键,要不然,不会自适应.重写viewpager,然后自定义一个setObjectForPosition()方法,来让每个viewpager的页面自适应,第一个参数是当前的布局view,第二个参数是当前的页面位置.比如我们的viewpager是三个页面,每个页面都是有fragment组成的,那么在每个fragment的onCreateView方法里面都要调用setObjectForPosition()这个方法,并且传的参数,第一个还是当前的布局返回的view,第二个参数是,当前fragment在viewpager里面的位置,所以最后的结果就是:==

public Fragment1(CustomViewpager vp) {
        this.vp = vp;
    }
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fg_sc_filght_info, null);
        ButterKnife.bind(this, view);
        vp.setObjectForPosition(view,0);
        return view;
public Fragment2(CustomViewpager vp) {
        this.vp = vp;
    }
 
 
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fg_sc_filght_info, null);
        ButterKnife.bind(this, view);
        vp.setObjectForPosition(view,1);
        return view;
public Fragment3(CustomViewpager vp) {
        this.vp = vp;
    }
 
 
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fg_sc_filght_info, null);
        ButterKnife.bind(this, view);
        vp.setObjectForPosition(view,2);
        return view;

这是一个完美的解决方案,我看好多小伙伴都在问,我的为啥 设置成vp.setObjectForPosition(view,0);报空指针啊,八成他是把每个页面都设置成了0,不报空才怪.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值