我的应用程序有评级条。我想把评级栏设置为不可点击和不可触摸。为此,我在每个评级条的xml
文件中添加了以下代码:
它在三星银河阿波罗GT-i5801中工作。但它在HTC手机上不起作用。为什么?
xml代码
android:clickable="false"
android:focusableInTouchMode="false"
android:focusable="false"
谢谢
您还可以使用以下命令从xml中将RatingBar设置为指示器:
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;
}
});
基本上你拦截了触摸,不做任何操作
也添加以下代码来阻止trackball滚动
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"/>