美文网首页
RatingBar numStars无效

RatingBar numStars无效

作者: 王家匀匀 | 来源:发表于2020-12-11 10:14 被阅读0次

    RatingBar 使用办法:
    使用 rating 代替numStars。重点设置

    1. max 属性控制最大个数;
    2. stepSize 步长,决定一次最少选几颗星星,有的app支持0.5;
    3. 宽度要设置成 wrap_content。否则 max 无效;
    4. 设置星星默认选中个数,使用rating ,numStars无效;
      rb.rating = 5.0f
    5. 设置style,在style中设置2种状态drawable.
      RatingBar 星星间无法设置间距。如果要求间距,可以在drawable中设置左右相同间距(2星间距/2)。
    6. setIsIndicator(true) 表示不能操作点击和滑动,默认是false。(设置RatingBar能否被用户改变)

    layout:

        <RatingBar
            android:id="@+id/rb"
            style="@style/RatingBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="15dp"
            android:layout_marginEnd="15dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="12dp"
            android:isIndicator="false"
            android:numStars="5"
            android:stepSize="1"
            android:max="5"
        />
    

    style:

        <style name="RatingBar" parent="Base.Widget.AppCompat.RatingBar">
            <!--修改默认图片-->
            <item name="android:progressDrawable">
                @drawable/rating_bar
            </item>
            <!--修改默认大小-->
            <item name="android:maxHeight">26dp</item>
            <item name="android:minHeight">26dp</item>
            <item name="android:minWidth">26dp</item>
            <item name="android:maxWidth">26dp</item>
    
        </style>
    

    drawable/rating_bar.xml:
    设置progress为选中的drawable,其它为没有选中的drawable.

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item
            android:id="@android:id/background"
            android:drawable="@drawable/pop_windows_icon_nor" />
        <item
            android:id="@android:id/secondaryProgress"
            android:drawable="@drawable/pop_windows_icon_nor" />
        <item
            android:id="@android:id/progress"
            android:drawable="@drawable/pop_windows_icon_sel" />
    </layer-list>
    

    RatingBar.setIsIndicator(boolean)源码。注释表示 设置RatingBar能否被用户改变

      /**
         * Whether this rating bar should only be an indicator (thus non-changeable
         * by the user).
         *
         * @param isIndicator Whether it should be an indicator.
         *
         * @attr ref android.R.styleable#RatingBar_isIndicator
         */
        public void setIsIndicator(boolean isIndicator) {
            mIsUserSeekable = !isIndicator;
            if (isIndicator) {
                setFocusable(FOCUSABLE_AUTO);
            } else {
                setFocusable(FOCUSABLE);
            }
        }
    

    相关文章

      网友评论

          本文标题:RatingBar numStars无效

          本文链接:https://www.haomeiwen.com/subject/nosrgktx.html