2012-01-15 19 views
7

Tôi muốn chặn việc kéo thanh tìm kiếm nếu giá trị là đúng. Điều này thậm chí có thể? Tôi sử dụng thanh tìm kiếm làm công tắc. Nếu giá trị thanh tìm kiếm của tôi là 0 và tôi nhấn nút hành động A bắt đầu. Nếu giá trị thanh tìm kiếm của tôi là 1 và tôi nhấn nút B được bắt đầu.
Tôi muốn ngăn chặn điều đó Nếu hành động A hoặc B đang chạy thanh tìm kiếm được kéo đến vị trí khác.

Làm cách nào để đạt được điều này?Thanh tìm kiếm của Android cách chặn kéo/tắt nó trong thời gian ngắn

Trả lời

42

Bạn nên đặt onTouchListener của riêng mình và chỉ trả về true.

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

setEnabled (false) thực sự làm mờ toàn bộ thanh tìm kiếm. Nếu chúng tôi chỉ muốn vô hiệu hóa liên lạc, đây là công việc hoàn hảo xung quanh. – raksja

+0

Đây là cách tốt nhất .. – Neela

+0

cảm ơn bạn rất nhiều. – Atula

6

Bạn đã thử tắt chế độ xem chưa?

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

Cập nhật:

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

Lý tưởng nhất bạn không nên làm này, vì điều này sẽ gây nhầm lẫn cho người dùng. Đề nghị của tôi là suy nghĩ lại cách tiếp cận của bạn.

+1

Điều đó có nghĩa là chế độ xem đã biến mất, đó không phải là những gì tôi muốn. – Leandros

+0

Sai. Nó KHÔNG loại bỏ chế độ xem, nó sẽ vô hiệu hóa chế độ xem do người dùng tương tác. Đọc tài liệu của bạn. – JoxTraex

+0

Ah, Ok. Sẽ kiểm tra nó. Cảm ơn! – Leandros

0

Set cấp một lớp biến

private boolean blockSeekBar = false; 

sau đó thiết lập blockSeekBar biến theo yêu cầu của bạn và sử dụng trong ứng dụng.

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

setEnabled(true/false) cũng là lựa chọn nhưng có chế độ xem không hiển thị tốt nên đó là lý do tại sao mã trên hoạt động hoàn hảo.

+0

Tôi không hiểu. Tại sao 'setEnabled()' không phải là một lựa chọn tốt? Đối với tôi nó hoạt động tốt. –

+0

khi bạn đặt setEnabled (true/false) thì chế độ xem cho thấy một số mờ có nghĩa là hiển thị trực tiếp không thể nhấp –

Các vấn đề liên quan