2012-01-15 54 views
7

如果值爲true,我想阻止拖動seekbar。這甚至有可能嗎?我使用seekbar作爲開關。如果我的seekbar值爲0,並且我按下按鈕動作A開始。如果我的seekbar值是1,我按下按鈕操作B開始。
我想阻止如果操作A或B正在運行,則將搜索欄拖動到另一個位置。

我該如何做到這一點?Android seekbar如何在短時間內阻止拖動/禁用

回答

42

您應該設置您自己的onTouchListener並返回true。

seekBar.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent motionEvent) { 
       return true; 
      } 
     }); 
+0

setEnabled(false)實際上使seekbar整體模糊。如果我們只是想禁用觸摸,這是完美的工作。 – raksja 2015-09-27 05:30:00

+0

這是最好的.. – Neela 2015-10-21 10:40:33

+0

非常感謝你。 – Atula 2016-10-08 06:36:20

6

您是否嘗試禁用該視圖?

編號: http://developer.android.com/reference/android/view/View.html#setEnabled(boolean)

更新:

https://stackoverflow.com/a/3278616/529691

理想你不應該這樣做,因爲這會混淆用戶。我的建議是重新考慮你的方法。

+1

這意味着視圖消失了,那不是我想要的。 – Leandros 2012-01-15 18:29:19

+0

錯了。它不會刪除視圖,它會禁止用戶與視圖交互。閱讀您的文檔。 – JoxTraex 2012-01-15 18:31:54

+0

啊,好的。是會測試它。謝謝! – Leandros 2012-01-15 18:33:10

0

設置一個一流水平的變量

private boolean blockSeekBar = false; 

後設置blockSeekBar變量按照您的要求,並在應用程序中使用。

seekBar.setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View view, MotionEvent motionEvent) { 
      return blockSeekbar; 
     } 
    }); 

setEnabled(true/false)也只好有觀點並沒有表現出良好的所以這就是爲什麼上面的代碼是完美的工作。

+0

我不明白。爲什麼'setEnabled()'不是一個好選擇?對我來說,它工作正常。 – 2017-05-19 23:27:52

+0

當你設置setEnabled(真/假),然後視圖顯示一些模糊意味着它的直接顯示不可點擊 – 2017-05-20 04:09:49