RatingBar를 만들어 별 다섯 개를 표시하는 방법 것 같다는 것입니다. 세로 레이아웃에서는 별 6

을 추가하는 방법에 대한 표준 예를 따르고 있습니다 RatingBar. 별의 수를 조절하기 위해 사용하려고했습니다 android:numStars="5". 문제는 별의 수가 전혀 아무것도하지 않는 것 같다는 것입니다. 세로 레이아웃에서는 별 6 개를 받고 휴대폰을 뒤집 으면 별 10 개 정도를 얻습니다. myBar.setNumStars(5)xml을로드하는 내 활동 ( ) 의 별 수를 설정하려고했지만 해당 옵션으로도 성공하지 못했습니다.

그래서 제 질문은 별 다섯 개만 표시되도록 레이아웃을 어떻게 정의합니까? 세트 numStars가 작동하지 않는 것 같습니다.

미리 감사드립니다, Roland



답변

<RatingBar
            android:id="@+id/rating"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="?android:attr/ratingBarStyleSmall"
            android:numStars="5"
            android:stepSize="0.1"
            android:isIndicator="true" />

코드에서

mRatingBar.setRating(int)

답변

RatingBar.setNumStar문서는 말합니다 :

표시 할 별 수를 설정합니다. 이러한 항목이 제대로 표시 되려면이 위젯의 ​​레이아웃 너비가 내용을 감싸는 것이 좋습니다.

따라서 레이아웃 너비를로 설정하면 wrap_content이 문제가 해결됩니다.


답변

나를 위해 일한이 : RatingBar내부해야한다 LinearLayout에 대한 랩 콘텐츠에 세트 폭 레이아웃을하는 것보다 다른 RatingBar.


답변

또한를 설정 layout_weight하면 numStars속성을 대체 합니다.


답변

당신은 사용해야
numStars="5"당신의 XML, 및 세트
android:layout_width="wrap_content".
그런 다음 스타일 및 기타 항목을 가지고 놀 수 있지만 layout_width의 “wrap_content”가 트릭을 수행합니다.


답변

사용하는 경우

android:layout_width="match_parent"

wrap_content를 사용하면 numStars 세트 만 표시됩니다. 🙂

android:layout_width="wrap_content"


답변

<RatingBar
                    android:id="@+id/ratingBar"
                    style="@style/custom_rating_bar"
                    android:layout_width="wrap_content"
                    android:layout_height="35dp"
                    android:clickable="true"
                    android:numStars="5"
                    />

XML 파일에서 별 수를 구성합니다 … 스타일 또는 활동 / 조각에 제공 할 필요가 없습니다. …. 중요 : WIDTH를 줄 바꿈 내용으로 입력하고 가중치가 활성화되지 않았는지 확인하십시오.