android - 如何在HTC mobile中设置评级栏是不可点击和可触摸的

时间:2011-08-22 11:44:37

标签: android ratingbar

我的申请有评级栏。我想设置评级栏是不可点击和不可触摸的。为此,我在每个评级栏的xml文件中添加了以下代码。

它正在使用三星Galaxy Apollo GT-i5801。但它不适用于HTC手机。为什么呢?

xml代码

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

感谢

4 个答案:

答案 0 :(得分:306)

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

android:isIndicator="true"

答案 1 :(得分:16)

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

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

答案 2 :(得分:16)

这是在setOnRatingBarChangeListener

中编写此代码
ratingaddrate.setIsIndicator(true);

更新:

您可以在XML中使用此示例

android:isIndicator="true"

还将此行添加到代码

ratingBar.setFocusable(false);

答案 3 :(得分: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"/>