Android数据绑定(bind)view.onTouchListener

标签 android data-binding ontouchlistener

Android 在数据绑定(bind)中有

<Button android:onClick="@{handler.someButtonClick()}"/>

在它的 Handler 类中,它的监听器将是这样的:

public View.OnClickListener someButtonClick() {
        return new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        };
    }

我想为一个 Button 实现 OnTouchListener,这样我就可以知道按钮何时被按下以及何时被释放

喜欢:

// Check if the button is PRESSED
if (event.getAction() == MotionEvent.ACTION_DOWN){
     //do some thing          
}// Check if the button is RELEASED
else if (event.getAction() == MotionEvent.ACTION_UP) {
    //do some thing                     
}

是否有任何可能的方法来完成此任务。

最佳答案

这里有一个解决方法,您可以使用它来执行此操作。

@BindingAdapter("touchListener")
public void setTouchListener(View self,boolean value){
    self.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent event) {
            // Check if the button is PRESSED
            if (event.getAction() == MotionEvent.ACTION_DOWN){
                //do some thing
            }// Check if the button is RELEASED
            else if (event.getAction() == MotionEvent.ACTION_UP) {
                //do some thing
            }
            return false;
        }
    });
}

然后在xml中

<Button  app:touchListener="@{true}"/>

关于Android数据绑定(bind)view.onTouchListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45692511/

相关文章:

c# - Xamarin.Android 中的 Android 数据绑定(bind)库

android - 尝试长按时 Android 中后退按钮的奇怪行为

android - onCreateViewHolder(ViewGroup parent, int viewType)

android - Android 中同时播放多个视频文件

c# - 将多个 DataBindings 添加到 Winforms 标签

android - 使用 OnTouchListener 和 OnLongClickListener 相互干扰

android - 左右滑动图片android

Android 从 Drawable 加载图像

java - Android Things 上 ImageReader.OnImageAvailableListener 始终失败并显示 "buffer has been freed"的原因可能是什么

wpf - 从 UI 绑定(bind)到 View 模型属性需要从 TextBox 中移除焦点