android-HTC 모바일에서 등급 표시 줄을 클릭 및 터치 할 수 없도록 설정하는 방법


94

내 응용 프로그램에는 등급 막대가 있습니다. 등급 표시 줄을 클릭 할 수없고 터치 할 수 없도록 설정하고 싶습니다. 이를 위해 xml각 등급 막대의 파일에 다음 코드를 추가했습니다 .

삼성 갤럭시 아폴로 GT-i5801에서 작업 중입니다. 그러나 HTC 모바일에서는 작동하지 않습니다. 왜?

xml 코드

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

감사


1
이 rating.setClickable (false);
Andro Selva 2011-08-22

아니요.하지만 diff (xml 및 코드 부분)가 있습니까?
naresh

확실하지 않다. 하지만 아직 xml에서 시도하지 않았습니다. 죄송합니다
Andro Selva

답변:


332

다음과 같이 xml에서 RatingBar를 표시기로 설정할 수도 있습니다.

android:isIndicator="true"

4
목록보기에서 이것을 사용하는 경우 이것이 최상의 솔루션입니다.
AlbertRosa

완벽한 솔루션
슬로 보단 Antonijević

작동하지만 등급을 변경할 수 없습니다. 즉, android : rating = "4"가 작동하지 않습니다. 항상 5입니다.
Vishal

@Vishal 그것은 아주 좋은 경우 일 수 있습니다; 8 년 동안 많은 것들이 바뀝니다. 더 이상 Android에서 작업하지 않지만 제가 기억하는 바에 따르면 등급을 설정할 수있는 방법이있었습니다. 아마도 XML 대신 코드에서 나온 것 같습니다.
Andy

@Andy-동의합니다. 다른 개발자 참조를 위해 내 댓글을 게시했습니다. 등급 표시기가 4 인 등급 표시 줄을 비활성화해야하는 경우 android : rating = "4"와 같아야하며 setOnTouchListener가 표시기에 대해 재정의되어야합니다.
Vishal

19

이것은이 코드를 setOnRatingBarChangeListener에 작성하는 것입니다.

ratingaddrate.setIsIndicator(true);

업데이트 :

XML에서이 예제를 사용할 수 있습니다.

android:isIndicator="true"

이 줄 을 코드에 추가 하십시오.

ratingBar.setFocusable(false);

18

컨트롤이 어두워 지므로 enabled를 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);

7
나는이 대답을 쓰고 더 나은 아래 앤디의 대답처럼, 작동하더라도
라이언 C를

4
안드로이드 : isIndicator는 = "진정한"는 적절한 솔루션입니다
dirkoneill

잘못된 답변. 올바른 방법 : android : isIndicator = "true"(XML) 또는 setIsIndicator (false) // 코드
Sileria
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.