1

我在代码中使用 SeekBar 时遇到问题...

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

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

在此处输入图像描述

解决了:

正如@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;
   } 
4

1 回答 1

3

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

话虽如此:

  • 我从来没有试过这个,所以YMMV。

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

于 2012-04-17T12:18:09.407 回答