我的申请有评级栏。我想设置评级栏是不可点击和不可触摸的。为此,我在每个评级栏的xml
文件中添加了以下代码。
它正在使用三星Galaxy Apollo GT-i5801。但它不适用于HTC手机。为什么呢?
xml代码
android:clickable="false"
android:focusableInTouchMode="false"
android:focusable="false"
感谢
答案 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"/>