停用滑动SeekBar(或用拇指创建进度条......)

时间:2012-04-17 12:09:09

标签: android view android-widget seekbar android-progressbar

我在代码中使用SeekBar时出现问题...

我想要一个SeekBar,其值由我设置,而不是由用户设置。我创建的唯一解决方案,我不喜欢,设置启用为false,但搜索栏的颜色变为灰色......(所以当用户滑动拇指时,我无法做任何事情......)

我会得到类似的东西,但没有可触摸的事件!

enter image description here

解决:

我解决了这个问题,正如@CommonsWare所说:

public class TaskListProgressBar extends SeekBar {

public TaskListProgressBar(Context context) {
    super(context);
 }


public TaskListProgressBar(Context context, AttributeSet attrs) {
        super(context, attrs);
   }

   public TaskListProgressBar(Context context, AttributeSet attrs, int defStyle) {
       super(context, attrs, defStyle);
   }


   @Override
   public boolean onTouchEvent(MotionEvent event) {
       return true;
   }

   @Override
   public boolean onTrackballEvent(MotionEvent ev) {
       return false;
   } 

1 个答案:

答案 0 :(得分:3)

您可以对其进行子类化并覆盖onTouchEvent()onTrackballEvent()(以便尝试使用拇指进行所有尝试)并使用android:focusable="false"(以防止它获得焦点,因此箭头键无法修改拇指位置)。

话虽如此:

  • 我从未尝试过这个,所以YMMV。

  • 如果您要根据上面的屏幕截图更改默认的拇指图像,请执行此操作。否则,用户会期望拇指可以移动,当他们无法移动时,他们会感到沮丧。