我无法找到将新闻效果添加到DelayedConfirmationView
的方法。我尝试在app:circle_color
上使用选择器,但按下的颜色在点击时不会出现。
这是我的xmls
DelayedConfirmationView:
<android.support.wearable.view.DelayedConfirmationView
android:id="@+id/confirmation_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_close_white_48dp"
app:circle_color="@drawable/selector_confirmation_view"
app:circle_radius="@dimen/circular_button_radius"
app:circle_radius_pressed="@dimen/circular_button_radius"
app:circle_padding="6dp"
app:circle_border_width="4dp"
app:circle_border_color="@color/white" />
选择
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/dark_blue" android:state_pressed="true" />
<item android:color="@color/blue" />
</selector>
那么,如何在该视图中添加按压效果?
P.S。
它似乎有效,但仅限于CircledImageView
答案 0 :(得分:0)
您可以在官方样本中查看DelayedConfirmationView
的使用示例:samples\android-22\wearable\DelayedConfirmation
DelayedConfirmationView
不是普通按钮,默认情况下不会像标准按钮那样应用按下状态。
要收听点击,有一个特殊的DelayedConfirmationListener
通过setListener(DelayedConfirmationListener)
方法设置。您需要在那里实现两种方法:
onTimerSelected(View)
- 一旦用户触摸按钮就会触发(只需触摸,甚至不是完全点击)。通常DelayedConfirmationView
在用户可见之后立即启动(例如通过声音请求某些操作后),并且他没有时间取消此操作。对触摸而不是完全点击做出反应是帮助用户尽快中断此操作的好方法。onTimerFinished(View)
- 在时间结束时调用。如果您想要将状态更改为按下触摸,则需要执行以下操作:
confirmationView.setListener(new DelayedConfirmationView.DelayedConfirmationListener() {
@Override
public void onTimerSelected(View view) {
confirmationView.setPressed(true);
}
@Override
public void onTimerFinished(View view) {
// do something here
}
});
顺便说一下。请将您的选择器从/res/drawable/
移至/res/color/
并更改:
app:circle_color="@drawable/selector_confirmation_view"
为:
app:circle_color="@color/selector_confirmation_view"