防止Android中的搜索栏点击

时间:2013-10-30 10:02:48

标签: 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>

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

目前,用户可以点击进度和拇指移动我想要禁用它。请帮忙

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

您需要处理搜索栏的触摸事件。我认为以下链接对您有所帮助。

Android seekbar solution