繁体   English   中英

RatingBar 未显示正确数量的星星

[英]RatingBar not showing correct amount of stars

当我将 numStars 设置为“5”时,我只看到 4 颗星,当我将它设置为 6 时,我看到 5 颗,但是当我在应用程序中投票给全部 5 颗星时,吐司说“6.0”作为评级,这不是什么我想要。 任何帮助都会很棒,我对此还是个新手。

我已经尝试更改 java 代码,以便它从评级中减去 1 个整数,但是当我尝试给 0 星时,吐司说 -1。 然而,当我用这种方法选择了所有 5 颗星时,我得到了 5 颗星。

            <RatingBar
                android:id="@+id/ratingBar"
                style="@android:style/Widget.DeviceDefault.RatingBar.Small"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:numStars="6"
                android:isIndicator="false"
                android:padding="@dimen/padding_standard"
                android:rating="3.5"
                android:stepSize="0.1"/>
    ratingBar.setOnRatingBarChangeListener
            (new RatingBar.OnRatingBarChangeListener() {
                @Override
                public void onRatingChanged(RatingBar ratingBar,
                                            float rating, boolean fromUser) {
                    String myRating = (getString(R.string.my_rating) +
                            String.valueOf(ratingBar.getRating()));
                    Toast.makeText(getContext(), myRating,
                            Toast.LENGTH_SHORT).show();

当我有 5 个 numStars 时,我的视觉效果为 4 星,但评分仍为 5 分。我希望视觉效果与我的吐司显示的内容一致。

这种风格是问题

您定义了样式:-@android:style / Widget.DeviceDefault.RatingBar.Small

在这种样式中,尺寸是预定义的,因此只有您不能正确获得6星或更多。 因此它开始调整为5星。

因此,您必须更改样式或将android:numStars =“ 6”更改为android:numStars =“ 5”

然后,它肯定会工作。

注意:-您也可以使用以下样式:-@android:style / Widget.DeviceDefault.RatingBar

RatingBar 中的padding是罪魁祸首,设置paddingVertical并避免 padding 或paddingHorizontal

暂无
暂无

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

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