最近測(cè)試反饋一個(gè)旋轉(zhuǎn)屏幕之后,界面不能上拉加載更多以及下拉刷新的問(wèn)題,因?yàn)樵摻缑嬖试S旋轉(zhuǎn)屏幕之后就銷(xiāo)毀重建,
But,銷(xiāo)毀重建我也設(shè)置Mode為Both了, 百思不得其解,沒(méi)辦法排坑咯
mPullToRefreshRecyclerView = (PullToRefreshRecyclerView) (rootView.findViewById(R.id.homepage_fragment_recyclerview));
mPullToRefreshRecyclerView.setMode(PullToRefreshBase.Mode.BOTH);
mPullToRefreshRecyclerView.setScrollingWhileRefreshingEnabled(false);
mRecyclerView = mPullToRefreshRecyclerView.getRefreshableView();
想著當(dāng)我滑動(dòng)屏幕時(shí)PullToRefresh的onInterceptTouchEvent()邏輯是咋處理的, 在方法里第一句就看到可疑的方法了-->isPullToRefreshEnabled()

image1.png
于是乎, 打了個(gè)斷點(diǎn), 發(fā)現(xiàn)這里 return false,也就是說(shuō)他把滑動(dòng)事件上交給國(guó)家了(不攔截上下的滑動(dòng)事件了),excuse me? OK, 接著跟下去
@Override
public final boolean isPullToRefreshEnabled() {
return mMode.permitsPullToRefresh();
}
boolean permitsPullToRefresh() {
return !(this == DISABLED || this == MANUAL_REFRESH_ONLY);
}
mMode是個(gè)內(nèi)部枚舉類(lèi), 跟到這里瞬間就明白了, 這里我外部雖然設(shè)置了Mode,霸特,內(nèi)部肯定修改了這個(gè)值 , 這時(shí)候就該抖一下機(jī)靈了, 反推一下視圖銷(xiāo)毀,view走了重建... 二話(huà)不說(shuō)奔著onRestoreInstanceState()方法去,果不其然

image2.png
0 --> disable, 把這個(gè)手動(dòng)修改過(guò)來(lái)即可.
希望幫到遇到此問(wèn)題的人!