Android搜索栏如何在短时间内阻止拖动/禁用它

Lea*_*ros 16 user-interface android seekbar

如果值为true,我想阻止拖动搜索条.这甚至可能吗?我使用搜索栏作为开关.如果我的搜索栏值为0,则按下按钮操作A开始.如果我的搜索栏值为1并且按下按钮,则启动操作B.
我想防止如果操作A或B正在运行,则搜索栏被拖动到另一个位置.

我怎样才能做到这一点?

小智 66

您应该设置自己的onTouchListener并返回true.

seekBar.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                return true;
            }
        });
Run Code Online (Sandbox Code Playgroud)


Jox*_*aex 6

你试过禁用视图吗?

参考:http: //developer.android.com/reference/android/view/View.html#setEnabled(boolean)

更新:

/sf/answers/229503151/

理想情况下,您不应该这样做,因为这会让用户感到困惑.我的建议是重新思考你的方法.

  • seekbar.setEnabled(true)或seekbar.setEnabled(false)不起作用.它不会阻止搜索栏被移动. (3认同)

Yog*_*thi 5

设置一个类级别变量

private boolean blockSeekBar = false;
Run Code Online (Sandbox Code Playgroud)

之后blockSeekBar根据您的要求设置变量并在应用程序中使用。

seekBar.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            return blockSeekbar;
        }
    });
Run Code Online (Sandbox Code Playgroud)

setEnabled(true/false)也是选择,但视图显示效果不佳,这就是为什么上面的代码完美工作的原因。

  • 我不明白。为什么“setEnabled()”不是一个好的选择?对我来说效果很好。 (2认同)