2011-08-22 15 views
69

Ứng dụng của tôi có các thanh xếp hạng. Tôi muốn đặt thanh Đánh giá là không thể nhấp và không thể chạm được. Đối với điều này tôi đã thêm mã sau vào xml tệp của mỗi thanh xếp hạng.android - Cách đặt thanh Đánh giá là không thể nhấp và có thể chạm vào trong điện thoại di động HTC

Nó đang hoạt động trong Samsung Galaxy Apollo GT-i5801. Nhưng nó không hoạt động trên điện thoại di động HTC. Tại sao?

mã XML

android:clickable="false"  
android:focusableInTouchMode="false"  
android:focusable="false" 

nhờ

+1

Bạn đã thử nó trong mã hóa như rating.setClickable này (false); –

+0

No. Nhưng có bất kỳ sự khác biệt nào (phần xml và mã) không? – naresh

+0

Không chắc chắn. Nhưng tôi chưa thử nó trong xml. xin lỗi –

Trả lời

258

Bạn cũng có thể thiết lập các RatingBar như chỉ từ xml như sau:

android:isIndicator="true" 
+4

đây là giải pháp tốt nhất nếu bạn đang sử dụng điều này trong chế độ xem danh sách. – AlbertRosa

+0

Cảm ơn, điều này đã giải quyết được vấn đề của tôi trong listview. – jackcar

16

không đặt kích hoạt để sai vì điều này sẽ làm mờ tầm kiểm soát. Những gì bạn muốn làm là ghi đè lên trên cảm ứng nghe như thế này:

import android.view.View.OnTouchListener; 

RatingBar ratingBar = (RatingBar)findViewById(R.id.ratingBar); 
ratingBar.setOnTouchListener(new OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 
      return true; 
     } 
    }); 

Vì vậy, về cơ bản bạn chặn các liên lạc và không làm gì với nó

Ngoài ra thêm đoạn mã sau quá để chặn hiệu ứng Rollover trackball

ratingBar.setFocusable(false); 
+6

Mặc dù tôi đã viết câu trả lời này và nó hoạt động, tôi thích câu trả lời của Andy tốt hơn bên dưới –

+4

android: isIndicator = "true" là giải pháp thích hợp – dirkoneill

+0

WRONG ANSWER. Cách chính xác là: android: isIndicator = "true" (XML) hoặc setIsIndicator (false) // CODE – Sileria

15

này là nó viết mã này trong setOnRatingBarChangeListener bạn

ratingaddrate.setIsIndicator(true); 

Cập nhật:

Bạn có thể sử dụng ví dụ này trong XML của bạn

android:isIndicator="true" 

cũng thêm dòng này Bộ luật

ratingBar.setFocusable(false); 
0

Đây là giải pháp tốt nhất:

android: isIndicator = "true"

+1

Đây là câu trả lời chính xác giống như câu trả lời được chấp nhận, tôi không hiểu tại sao bạn đăng bài này. –

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