禁用客户端对搜索栏的更改

时间:2013-04-29 16:59:50

标签: android custom-controls seekbar

我有一个SeekBar会在我需要时更改进度,但我不希望用户能够手动更改它。

我尝试将SeekBar设置为:

<SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="65dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="78dp"
        android:progress="10"
        android:max="100"
        android:clickable="false"
        android:thumb="@drawable/transparent"
        android:progressDrawable="@drawable/customprogressbar" />

但它不起作用。

我该怎么做?


这或多或少是客户可以看到这一点的一个例子。

我使用自定义样式,因为将来我需要根据SeekBar的哪个部分更改背景图像和进度。

谢谢大家!

No given description by asker

4 个答案:

答案 0 :(得分:45)

您可以使用 android:enabled =&#34; false&#34; ,但会显示停用效果 [使您的搜索栏变暗]。

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

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

答案 1 :(得分:33)

你可以做的一件事是禁用 搜索栏, 与seekbar.setEnabled(false)

一样

这样做框架不会接受任何 来自用户和您的触摸事件 只能通过代码更改进度级别。

我希望这会对你有帮助.......

答案 2 :(得分:2)

只需从CustomSeekBar类的onTouch方法返回false。

希望这有效!

答案 3 :(得分:0)

因此,如果您要显示对拇指活动无响应的启用搜寻栏,请实现带有返回true的触摸事件处理程序,如下所示。

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