繁体   English   中英

Android评分栏仅显示全星,也不显示半星

[英]Android Rating Bar shows only full stars, not half stars too

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

我插入了一个带有名称和ratingValue的SQLite行,在该行中ratingValue表示为“ 3.5”,但我的应用程序将其变为“ 4”。 即使我的StepSize为“ 0.5”,默认值也更改为“ 3”

编辑:如果您单击列表行,它会对话另一个评级栏,您可以对其进行“评级”,如果单击按钮,它将评级值发送到数据库中。 列表项RatingBar仅用于显示“平均”评级,但那是错误的地方,它会将值四舍五入

编辑2:将步长设置为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));

一些图片来说明 在将第一个等级栏设置为2.6之后

我认为您不需要任何库,我只是尝试了一下,它就可以了。

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

首先,定义评级小部件的方式不能接受值。 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

检查出的小部件看起来多么像喜欢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM