Java ViewPager+;Seekbar:当尝试滑动Seekbar时,viewPager会更改片段
我有一个有三个片段的viewPager。中间(第二个)片段中实现了一个seekBar。当我尝试滑动搜索栏时,viewPager会更改片段 在另一篇帖子中,用户遇到了类似的问题,并提供了解决方案,但该解决方案完全将滑动功能与viewPager分离Java ViewPager+;Seekbar:当尝试滑动Seekbar时,viewPager会更改片段,java,android,android-viewpager,seekbar,Java,Android,Android Viewpager,Seekbar,我有一个有三个片段的viewPager。中间(第二个)片段中实现了一个seekBar。当我尝试滑动搜索栏时,viewPager会更改片段 在另一篇帖子中,用户遇到了类似的问题,并提供了解决方案,但该解决方案完全将滑动功能与viewPager分离 当使用seekbar视图时,如何保持两个滑动功能,但聚焦seekbar。我终于找到了答案。如果有人还在问这个问题。 创建SwipeRefreshlayout的自定义类并添加到layout public class CustomSwipeRefre
当使用seekbar视图时,如何保持两个滑动功能,但聚焦seekbar。我终于找到了答案。如果有人还在问这个问题。 创建SwipeRefreshlayout的自定义类并添加到layout
public class CustomSwipeRefresh extends SwipeRefreshLayout {
private int mTouchSlop;
private float mPrevX;
private boolean isDisabled;
public CustomSwipeRefresh(Context context, AttributeSet attrs) {
super(context, attrs);
mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
}
public void disableInterceptTouchEvent(boolean isDisabled) {
this.isDisabled = isDisabled;
getParent().requestDisallowInterceptTouchEvent(isDisabled);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mPrevX = MotionEvent.obtain(event).getX();
break;
case MotionEvent.ACTION_MOVE:
if (isDisabled) {
return false;
}
float eventX = event.getX();
float xDiff = Math.abs(eventX - mPrevX);
if (xDiff > mTouchSlop) {
return false;
}
}
return super.onInterceptTouchEvent(event);
}
}
然后在seekbar的fragment类上,只需添加代码
mswiperefresh.disableInterceptTouchEvent(boolean);
启用和禁用滑动焦点
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
mswiperefresh.disableInterceptTouchEvent(true);
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
mswiperefresh.disableInterceptTouchEvent(false);
}