android-Ultra-Pull-To-Refresh
android-Ultra-Pull-To-Refresh copied to clipboard
RentalsSunHeaderView与disableWhenHorizontalMove有冲突
设置disableWhenHorizontalMove后RentalsSunHeaderView的下拉不能正常使用了,不管怎么往下滑都没没反应,header下拉不出来
代码 ptrFrameLayout = (PtrFrameLayout) view.findViewById(R.id.ptr_frame); ptrFrameLayout.disableWhenHorizontalMove(true); final RentalsSunHeaderView header = new RentalsSunHeaderView(getActivity()); header.setLayoutParams(new PtrFrameLayout.LayoutParams(-1, -2)); header.setPadding(0, DisplayUtil.dip2px(15), 0, DisplayUtil.dip2px(10)); header.setUp(ptrFrameLayout);
ptrFrameLayout.setHeaderView(header); ptrFrameLayout.addPtrUIHandler(header);
PtrHandler.checkCanDoRefresh()
这个决定是否可以下拉。你可以替换成其他 Header 验证。
disableWhenHorizontalMove
这个是水平移动(ViewPager)时禁止下拉刷新用的。不会和任何样式冲突。
ptrFrameLayout.setPtrHandler(new PtrHandler() {
@Override
public void onRefreshBegin(PtrFrameLayout frame) {
}
@Override
public boolean checkCanDoRefresh(PtrFrameLayout frame, View content,
View header) {
return true;
}
});
就算我把这个设置成一直可以下拉也没作用, 我调试了下,在PtrFrameLayout的dispatchTouchEvent中,MotionEvent.ACTION_MOVE里那个offsetX值一直很大,offsetY值很小,导致把我的手势错误判断为横向滑动。
其他的 Header 会这样么?
PtrClassicFrameLayout默认的那个header不会这样,其他的没试过,而且如果我不设置disableWhenHorizontalMove这个属性的话,RentalsSunHeaderView这个header是可以下拉的
的确有这个问题 ,设置disableWhenHorizontalMove后RentalsSunHeaderView的下拉不能正常使用了,其他的Header没这个问题
@leasontou 啊哈,我也遇到了这个问题,后来有找到解决方法吗?
也遇到此问题,现在还没有解决方案吗?~ @leasontou @liaohuqiu @guoqipan @hblolj
重写PtrTensionIndicator解决。