28

我有一个 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 所在的部分更改背景图像和进度。

谢谢大家!

提问者没有给出描述

4

4 回答 4

68

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

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

seekBar.setOnTouchListener(new OnTouchListener(){
  @Override
  public boolean onTouch(View v, MotionEvent event) {
    return true;
 }
});
于 2015-01-05T11:57:15.420 回答
41

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

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

我希望这能帮到您.......

于 2013-04-29T17:30:24.300 回答
2

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

希望这有效!

于 2016-06-28T09:38:35.420 回答
0

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

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

于 2020-10-14T21:44:29.020 回答