huxq17 / XRefreshView

一个万能的android下拉上拉刷新的框架,完美支持recyclerview
1.7k stars 501 forks source link

设置xRefreshView.setPullLoadEnable(false); xRefreshView.setAutoLoadMore(false);后再设置xRefreshView.setPullLoadEnable(true);xRefreshView.setAutoLoadMore(true);后footView显示不全,必须要重新设置一个新的footView #62

Closed Tide0127 closed 7 years ago

Tide0127 commented 7 years ago

if (false) { xRefreshView.setPullLoadEnable(false); xRefreshView.setAutoLoadMore(false); } else { xRefreshView.setPullLoadEnable(true); xRefreshView.setAutoLoadMore(true); //必须要重新newXRefreshViewFooter设置到该方法中xRefreshView.setCustomFooterView(newXRefreshViewFooter(EaseTourTwoLevelFragment.this.getActivity())); } 大牛,这个是为什么?

huxq17 commented 7 years ago

试试3.6.3版本

Tide0127 commented 7 years ago

不行,还是显示不全,3.6.3版本更新日志我看是headView,footView没有改吗?

huxq17 commented 7 years ago

你写个有问题的demo发给我看看吧,你这么说我不清楚是什么情况。

mkjihu commented 7 years ago

我也遇到一样问题了,是用RecyclerView ,Adpder是继承官方的 我发现在onCreate 里面就设置RecyclerView adapder就可以正常显示footView 如果adapder改到onWindowFocusChanged 里设置就会有footView不会显示问题 除非setAdapter 之后还加上一句xRefreshView.setCustomFooterView(new XRefreshViewFooter(this));

部份程式码大概是这样

@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sort_page);

        recyclerView = (RecyclerView) findViewById(R.id.recycler_view_test_rv);
        xRefreshView = (XRefreshView) findViewById(R.id.xrefreshview);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new GridLayoutManager(getApplicationContext(), 3));
        xRefreshView.setPinnedTime(1000);
        xRefreshView.setMoveForHorizontal(true);
        xRefreshView.setPullLoadEnable(true); 
        xRefreshView.setPullRefreshEnable(true);
        xRefreshView.setAutoLoadMore(false);
        xRefreshView.enableReleaseToLoadMore(true);
        //xRefreshView.setSilenceLoadMore();// 设置静默加载模式
        xRefreshView.setXRefreshViewListener(this);

        /*
        ArrayList<String> Indexs = new ArrayList<>();
        for (int i = 0; i < 35; i++) {
            Indexs.add(i+"");
        }
        recyclerView.setAdapter(new NormalRecyclerAdapter(Indexs));
        */
    }
@Override  
public void onWindowFocusChanged(boolean hasFocus)  
    {  
        if (hasFocus)  
        { 
            ArrayList<String> Indexs = new ArrayList<>();
            for (int i = 0; i < 35; i++) {
                Indexs.add(i+"");
            }
            recyclerView.setAdapter(new NormalRecyclerAdapter(Indexs));
            //xRefreshView.setPullLoadEnable(true); 
            //xRefreshView.setAutoLoadMore(true); 
            xRefreshView.setCustomFooterView(new XRefreshViewFooter(this));  //需要加这句才能正常显示footView
        }  
    }
huxq17 commented 7 years ago

@mkjihu 如果没有使用库里的adapter,那么设置footerview的方法和其他view一样,都是用xRefreshView.setCustomFooterView(new XRefreshViewFooter(this))