阻止 Android 中的搜索栏点击

Sri*_*Pai 0 android android-widget android-seek

我正在使用搜索栏。我只想通过移动拇指来控制它。

如何禁用对 ProgressDrawable 的点击?

我尝试过android:clickable="false",但没有成功。

我在 XML 中寻找条形码

      <SeekBar
        android:id="@+id/myseek"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:maxHeight="500dp"
        android:minHeight="50dp"
        android:paddingBottom="30dp"
        android:progressDrawable="@drawable/progress_left"
        android:thumb="@drawable/left_unlocker_bkg" >
    </SeekBar>
Run Code Online (Sandbox Code Playgroud)

我的 onSeekChangedListner 的 Seekbar 代码

unlockSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                    @Override
                    public void onStopTrackingTouch(SeekBar seekBar) {
                        toastText.setVisibility(View.GONE);
                        seekBar.setProgress(0);
                    }

                    @Override
                    public void onStartTrackingTouch(SeekBar seekBar) {

                        if (seekBar.getProgress() < 10) {
                            seekBar.setProgress(0);
                        }
                        toastText.setVisibility(View.VISIBLE);
                        toastText.setText("Slide to Unclock");
                    }

                    @Override
                    public void onProgressChanged(SeekBar seekBar,
                            int progress, boolean fromUser) {

                        if (progress == 100) {
                            Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
                            v.vibrate(100);
                            finish();
                        } 
                    }
                });
Run Code Online (Sandbox Code Playgroud)

目前,用户可以单击进度并移动拇指,我想将其禁用。请帮忙

Sri*_*h P 6

您可以使用android:enabled="false",但它会显示禁用效果[使您的搜索栏变暗]。

因此,如果您想显示启用搜索栏而不响应拇指活动,请实现返回 true 的触摸事件处理程序,如下所示。

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