Hri*_*dam 6 android ratingbar android-studio
我在我的布局中使用了RatingBar作为下面的1星 -
<RatingBar
android:id="@+id/ratingBar"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_below="@id/textViewReleaseDate"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:layout_toRightOf="@id/imageViewPoster"
android:numStars="1"
android:stepSize="1.0" />
Run Code Online (Sandbox Code Playgroud)
并在我的活动中有setOnTouchListener,如下所示 -
ratingBar.setOnTouchListener(new View.OnTouchListener() {
int ratingAtActionDown;
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN)
ratingAtActionDown = (int) ratingBar.getRating();
else if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
ratingBar.setRating(ratingAtActionDown == 0 ? 1 : 0);
}
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
对于以上片段,我收到此警告 -
自定义视图'RatingBar'已调用setOnTouchListener,但不会覆盖performClick
在Android Studio 2.3.3 ratingBar.setOnTouchListener没有生成警告但在升级到Android Studio 3.0稳定后它开始警告.
应该怎么做才能摆脱警告?
Lint 似乎错误地认为任何未实现该performClick()方法的视图都是自定义视图。知道了这一点,我们可以猜测受此警告影响的视图实际上缺少该实现。
现在回答您的问题,如果您希望警告消失,您可能需要扩展要设置 onTouchListener 的视图:
class TouchableRatingBar extends android.support.v7.widget.AppCompatRatingBar{
public TouchableRatingBar(Context context) {
super(context);
}
@Override
public boolean performClick() {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
覆盖该performClick()方法,你应该可以开始了。
请注意,我使用了 AppCompatRatingBar,因为 Lint 似乎不喜欢这样做。
您可能还需要双重投射评级栏或更改其布局中的类型。
双演员:
TouchableRatingBar ratingBar = (TouchableRatingBar)(RatingBar)findViewById(R.id.ratingBar);
Run Code Online (Sandbox Code Playgroud)
我个人不会使用双重转换,但如果您需要有一个替代方案来简单地更改布局中的类型,它可能会完成这项工作。
类型变更:
<yourcompany.yourproject.TouchableRatingBar
android:id="@+id/ratingBar"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_below="@id/textViewReleaseDate"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:layout_toRightOf="@id/imageViewPoster"
android:numStars="1"
android:stepSize="1.0" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2235 次 |
| 最近记录: |