98

我的应用程序有评分栏。我想将评级栏设置为不可点击且不可触摸。为此,我在xml每个评分栏的文件中添加了以下代码。

它在三星银河阿波罗 GT-i5801 中工作。但它不适用于 HTC 手机。为什么?

xml代码

android:clickable="false"     
android:focusableInTouchMode="false"    
android:focusable="false"

谢谢

4

4 回答 4

343

您还可以使用以下内容将 RatingBar 设置为 xml 中的指示器:

android:isIndicator="true"
于 2011-11-23T13:48:08.400 回答
21

这就是在您的 setOnRatingBarChangeListener 中编写此代码

ratingaddrate.setIsIndicator(true);

更新 :

您可以在 XML 中使用此示例

android:isIndicator="true"

还将这一行添加到代码中

ratingBar.setFocusable(false);
于 2014-08-30T07:15:51.063 回答
20

不要将 enabled 设置为 false,因为这会使控件变暗。你想要做的是像这样覆盖 on touch 监听器:

import android.view.View.OnTouchListener;

RatingBar ratingBar = (RatingBar)findViewById(R.id.ratingBar);
ratingBar.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            return true;
        }
    });

所以基本上你拦截触摸并且什么都不做

还要添加以下代码来阻止轨迹球翻转

ratingBar.setFocusable(false);
于 2011-11-21T14:41:42.343 回答
0

style="?android:attr/ratingBarStyleIndicator"添加到您的布局 中
例如

<RatingBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/review_star"
        style="?android:attr/ratingBarStyleIndicator"
        android:scaleX=".5"
        android:rating="3.5"
        android:scaleY=".5"
        android:transformPivotX="0dp"
        android:transformPivotY="0dp"
        android:max="5"/>
于 2020-08-27T12:21:04.067 回答