我的应用程序有评分栏。我想将评级栏设置为不可点击且不可触摸。为此,我在xml
每个评分栏的文件中添加了以下代码。
它在三星银河阿波罗 GT-i5801 中工作。但它不适用于 HTC 手机。为什么?
xml代码
android:clickable="false"
android:focusableInTouchMode="false"
android:focusable="false"
谢谢
您还可以使用以下内容将 RatingBar 设置为 xml 中的指示器:
android:isIndicator="true"
这就是在您的 setOnRatingBarChangeListener 中编写此代码
ratingaddrate.setIsIndicator(true);
更新 :
您可以在 XML 中使用此示例
android:isIndicator="true"
还将这一行添加到代码中
ratingBar.setFocusable(false);
不要将 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);
将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"/>