Android评分栏仅显示完整的星标,而不是半星形

时间:2016-02-29 16:24:39

标签: android ratingbar

我在Android应用程序中使用评级栏。但它只显示满星,当我也想要半星时。

我插入了一个带有名称和ratingValue的SQLite行,其中ratingValue代表" 3.5"但是我的申请把它变成了#34; 4"。即使我的StepSize是" 0.5",即使默认值也改为" 3"

修改 如果您单击listrow,它会对话另一个评级栏,您可以"评价"如果单击某个按钮,它会将评级值发送到数据库中。 listitem RatingBar仅用于显示"平均值"等级,但它出错的地方,它将值向上舍入

编辑2: 将stepsize设置为0.1,现在,奇怪的是,只有中间星接受浮点数... 其余的星星仍然只是满满的 如果我将评级设置为1.2,则只有第二颗星接受浮动值,0.2接受第一颗等,但其他恒星(不在该范围内)仅为或满或空

这里有一些代码

ListItem_layout

<TableRow>    
    <RatingBar
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/sportsRatingBar"
        android:gravity="center_horizontal"
        android:focusableInTouchMode="false"
        android:isIndicator="true"
        android:clickable="false"
        android:focusable="false"
        android:layout_column="1"
        android:rating="1.1"
        android:stepSize="0.1" />

列表项

if(ratingBar!=null) {
                ratingBar.setRating(p.getRating());
                ratingBar.setTag(p.getId());
            }

可重复使用的课程

public float getRating() { return Rating; }

评估的SQLite表格列

 COLUMN_RATING + " real not null);"

最后,从数据库中获取

c.getFloat(COLUMN_RATING_COL));

一些图片来解释 after setting first ratingbar to 2.6

2 个答案:

答案 0 :(得分:5)

我认为您不需要任何库,我只是尝试过它,并且它正常工作。

<android.support.v7.widget.AppCompatRatingBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="?android:attr/ratingBarStyle"
    android:background="@android:color/holo_red_dark"
    android:id="@+id/ratingBar1"
    android:stepSize="0.1"
    android:rating="2.5"/>

我将start的值设置为4.5并且它正在这样工作。

RatingBar ratingBar = (RatingBar) findViewById(R.id.coloredRatingBar1);
    ratingBar.setRating(4.8f);
    ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
            Log.i(TAG, "onRatingChanged: rating : "+rating);
        }
    });

答案 1 :(得分:1)

首先,定义评级窗口小部件的方式不能接受值。 Clickable设置为false,isIndicator设置为true。接受输入以下列方式定义小部件

<RatingBar
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/sportsRatingBar"
        android:gravity="center_horizontal"
        android:rating="2.5"
        android:stepSize="0.5" />

获取值不确定如何设置变量Rating

查看图片,了解窗口小部件的外观like