Android:评分栏不可见,仅在触摸

时间:2015-11-07 14:49:34

标签: android android-5.0-lollipop android-4.4-kitkat ratingbar

在我的Android应用中,ratingbars不可见。它只有在触摸时才会变得可见,一旦我脱下手指就会消失。

我的代码:

<RatingBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/myratingStars"
            android:layout_gravity="center_horizontal|center_vertical|center"
            android:numStars="5"/>

它不会在Lollipop模拟器/真实手机/ Android Studio设计窗口中呈现(在API 23模式下),但会在KitKat模拟器和Android设计窗口中呈现(在API 15模式下)。

完整的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="24dp"
        android:orientation="vertical">
        <RatingBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/myratingStars"
            android:layout_gravity="center_horizontal|center_vertical|center"
            android:numStars="5"/>
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <android.support.v7.widget.AppCompatEditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="16sp"
                android:maxLines="10"
                android:id="@+id/myratingTxt"
                android:layout_marginTop="12dp"
                android:layout_marginBottom="2dp"
                android:hint="@string/write_review"/>
        </android.support.design.widget.TextInputLayout>

        <android.support.v7.widget.AppCompatButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/submitReview"
            android:text="@string/review_submit"
          android:layout_gravity="center_horizontal|center|center_vertical"
            android:textColor="@color/white"
            android:onClick="submitReview"
            android:layout_marginTop="8dp"
            tools:visibility="visible"/>
    </LinearLayout>

</LinearLayout>

5 个答案:

答案 0 :(得分:5)

根据Google代码上的this问题,尝试将这些行添加到您的RatingBar媒体资源中:

android:isIndicator="true"
style="?android:attr/ratingBarStyleIndicator"

或者可能是其中一些风格:

style="?android:attr/ratingBarStyle"

style="android:attr/ratingBarStyleSmall"

正如您所看到的,谷歌开发人员没有回答,所以我不知道为什么会出现这种奇怪的行为,但也许会有所帮助。

答案 1 :(得分:5)

经过一些研究尝试了我的运气,它的确有效!终于找到了解决方案!

添加这些属性以挽救我的生命!

android:progressBackgroundTint="@color/colorAccent"
android:progressTint="@color/colorAccent"
android:secondaryProgressTint="@color/colorAccent"

示例:

<android.support.v7.widget.AppCompatRatingBar
        android:id="@+id/ratingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:progressBackgroundTint="@color/colorAccent"
        android:progressTint="@color/colorAccent"
        android:secondaryProgressTint="@color/colorAccent"
        android:rating="4" />

您可以根据需要更改这些颜色!!

额外信息:

android:progressTint 用于实际进度颜色

android:secondaryProgressTint 用于辅助进度,即选择的部分评级表示使用此属性对另一半进行着色的一半。

用于其余评级的

android:progressBackgroundTint 表示3分(满分5分),所以最后2分为这一个!

快乐的编码!!吃安卓饮料! ;)

答案 2 :(得分:1)

如果没有所有布局文件,就不可能解决这个问题,但如果只发生在Lollipop或Marshmallow可能会出现高程问题。尝试设置为评级栏“elevation:10dp”

答案 3 :(得分:1)

yourRatingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
                YourRatingValue = String.valueOf(rating);                 
                Toast.makeText(getActivity(), "Your Rating :" + YourRatingValue, Toast.LENGTH_SHORT).show();
            }
        });

答案 4 :(得分:-1)

对我有用的是在小部件的高度上玩。如果太大,则该小部件将无法直观显示。