2011-08-22 12 views
69

Moja aplikacja ma paski oceny. Chcę ustawić pasek oceny bez klikania i nie można go dotknąć. W tym celu dodałem następujący kod w pliku xml każdego paska oceny.android - Jak ustawić pasek oceny nie można klikać i dotykać w telefonie HTC

Działa w Samsung Galaxy Apollo GT-i5801. Ale nie działa w telefonie HTC. Czemu?

kodu xml

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

dzięki

+1

próbowałeś go kodowania jak ten rating.setClickable (false); –

+0

Nie. Ale czy jest tam jakaś dyferencjał (część xml i kod)? – naresh

+0

Nie jestem pewien. Ale nie próbowałem jeszcze tego w xml. przepraszam –

Odpowiedz

258

można również ustawić RatingBar jako wskaźnik z xml z następujących czynności:

android:isIndicator="true" 
+4

jest to najlepsze rozwiązanie, jeśli używasz tego w widoku listy. – AlbertRosa

+0

Dzięki, to rozwiązało mój problem w widoku listy. – jackcar

16

nie zostanie ustawiona na false włączone jak to będzie przyciemnić kontroli. Co chcesz zrobić, to przesłonić na dotykowym słuchacza jak ten:

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

Więc w zasadzie przechwycić dotyk i nic nie robić z niego

Również dodać następujący kod zbyt blokować najazdów trackball

ratingBar.setFocusable(false); 
+6

Mimo że napisałem tę odpowiedź i działa, podoba mi się odpowiedź Andy'ego lepiej poniżej –

+4

android: isIndicator = "true" jest właściwym rozwiązaniem – dirkoneill

+0

NIEPOPRAWNA ODPOWIEDŹ. Prawidłowy sposób to: android: isIndicator = "true" (XML) lub setIsIndicator (false) // CODE – Sileria

15

Jest to napisać ten kod w swoim setOnRatingBarChangeListener

ratingaddrate.setIsIndicator(true); 

Aktualizacja:

Można użyć tego przykładu w XML

android:isIndicator="true" 

również dodać tę linię z Kodeksem

ratingBar.setFocusable(false); 
0

Jest to najlepsze rozwiązanie:

android: isIndicator = "true"

+1

To jest dokładnie ta sama odpowiedź, co zaakceptowana odpowiedź. Nie rozumiem, dlaczego to opublikowałeś. –

Powiązane problemy