如何设置评级栏在HTC手机上是不可点击和可触摸的



我的应用程序有评级条。我想把评级栏设置为不可点击和不可触摸。为此,我在每个评级条的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"/>

最新更新