【问题标题】:Seekbar not scrolling smoothly inside viewpagerSeekbar 在 vi​​ewpager 内无法平滑滚动
【发布时间】:2019-05-03 05:10:29
【问题描述】:

一个片段包含一个具有两个片段的viewpager。在第一个中,搜索栏不会滚动,但在尝试滚动时会滑动查看器。尝试滚动时似乎激活了 viewpager 偏移量。但问题是我在另一个菜单中有相同类型的配置并且它有效。解决办法是什么?

【问题讨论】:

    标签: android android-viewpager wiki seekbar swiperefreshlayout


    【解决方案1】:

    我认为这两个片段都有一个变化。一个添加了 swiperefreshlayout,另一个没有。

    在此之后,我认为解决方案如下所示。

    如果有人仍然坚持这个问题。创建一个自定义的 SwipeRefreshlayout 类并添加到布局中。

    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);
        }
    }
    

    然后在带有搜索栏的片段类上,只需添加代码

    mswiperefresh.disableInterceptTouchEvent(boolean); 启用和禁用滑动焦点。

     @Override public void onStartTrackingTouch(SeekBar seekBar) {
         mswiperefresh.disableInterceptTouchEvent(true);
          }
    
     @Override
         public void onStopTrackingTouch(SeekBar seekBar) {
              mswiperefresh.disableInterceptTouchEvent(false);
        }
    

    【讨论】:

    • 如果您自己解决了问题,您可以接受自己的答案。欢迎使用 StackOverflow。
    猜你喜欢
    • 2012-05-15
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多