【问题标题】:android - How to set the Rating bar is non clickable and touchable in HTC mobileandroid - 如何在 HTC 手机中设置评级栏不可点击和可触摸
【发布时间】:2011-08-22 11:44:37
【问题描述】:

我的应用程序有评分栏。我想将评级栏设置为不可点击且不可触摸。为此,我在每个评分栏的xml 文件中添加了以下代码。

它在三星银河 Apollo GT-i5801 中工作。但它不适用于 HTC 手机。为什么?

xml 代码

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

谢谢

【问题讨论】:

  • 你有没有试过像这样写代码 rating.setClickable(false);
  • 没有。但是是否有任何差异(xml 和代码部分)?
  • 不确定。但是我还没有在xml中尝试过。对不起

标签: android ratingbar


【解决方案1】:

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

android:isIndicator="true"

【讨论】:

  • 如果您在列表视图中使用它,这是最好的解决方案。
  • 完美解决方案
  • 它有效,但您无法更改评级。即 android:rating="4" 将不起作用。它永远是 5。
  • @Vishal 很可能是这种情况; 8年很多事情都变了。我不再在 Android 上工作了,但我记得有一种方法可以设置评级。可能来自代码而不是 XML。
  • @Andy - 我同意,我刚刚发布了我的评论供其他开发人员参考。如果需要禁用评分指示器为 4 的评分栏,那么它应该类似于 android:rating="4" 并且需要为指示器覆盖 setOnTouchListener。
【解决方案2】:

这就是在你的 setOnRatingBarChangeListener 中写这段代码

ratingaddrate.setIsIndicator(true);

更新:

你可以在你的 XML 中使用这个例子

android:isIndicator="true"

还将这一行添加到代码中

ratingBar.setFocusable(false);

【讨论】:

    【解决方案3】:

    不要将 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);
    

    【讨论】:

    • 尽管我写了这个答案并且它有效,但我更喜欢下面安迪的答案
    • android:isIndicator="true" 是正确的解决方案
    • 错误答案。正确方法是:android:isIndicator="true" (XML) 或 setIsIndicator(false) // CODE
    • 好吧,有了这个答案,我可以保持风格。好主意。
    • 感谢它保持空星秀的最佳答案
    【解决方案4】:

    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"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      相关资源
      最近更新 更多