2011-08-22 95 views
69

我的應用程序有評級欄。我想設置評分欄是不可點擊並且不可觸摸的。爲此,我在每個評級欄的xml文件中添加了以下代碼。android - 如何設置評分欄是不可點擊和觸摸HTC手機

它在三星銀河Apollo GT-i5801工作。但它不適用於HTC手機。爲什麼?

XML代碼

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

感謝

+1

你嘗試過它編碼這樣rating.setClickable(假); –

+0

不,但是是否有差異(xml和代碼部分)? – naresh

+0

不確定。但我還沒有在xml中嘗試過。對不起 –

回答

258

你也可以用設置的RatingBar作爲指標從XML如下:

android:isIndicator="true" 
+4

如果您在列表視圖中使用,這是最佳解決方案。 – AlbertRosa

+0

謝謝,這解決了我在listview中的問題。 – jackcar

16

不要設定爲能夠爲false,因爲這會變暗控制。你想要做的是覆蓋在觸摸監聽器是這樣的:

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; 
     } 
    }); 

所以基本上你攔截觸摸和做與它無關

也將添加以下代碼太阻止軌跡球翻車

ratingBar.setFocusable(false); 
+6

即使我寫了這個答案,它的工作原理,我喜歡安迪的答案更好 –

+4

android:isIndicator =「true」是正確的解決方案 – dirkoneill

+0

錯誤的答案。正確的方法是:android:isIndicator =「true」(XML)或setIsIndicator(false)//代碼 – Sileria

15

這是寫這段代碼在你的setOnRatingBarChangeListener

ratingaddrate.setIsIndicator(true); 

更新:

您可以在XML用這個例子

android:isIndicator="true" 

也是此行添加到代碼

ratingBar.setFocusable(false); 
0

這是最好的解決辦法:

機器人:isIndicator = 「真」

+1

這與接受的答案完全相同,我不明白你爲什麼發佈這個答案。 –