gpt4 book ai didi

Android OnTouchListener 停用按钮布局状态

转载 作者:行者123 更新时间:2023-11-30 03:40:43 26 4
gpt4 key购买 nike

最初我通过 XML 将我的按钮连接到一个方法,如下所示:

    <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/custom_button_green"
android:onClick="start_process"
android:text="@string/button_send"
android:textSize="50sp" />

然后我决定添加一个 onTouchListener 以便我可以处理 ACTION_UP 事件:

    private OnTouchListener myListener = new OnTouchListener(){
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
//start recording
System.out.println("DOWN");
start_process();

} else if (event.getAction() == MotionEvent.ACTION_UP) {
System.out.println("UP");
}
return true;
}
};

监听器工作得很好,但我注意到按钮的状态消失了。如果按钮被按下,按钮会显示不同的颜色,但现在按钮通过监听器进行交互时不再发生这种情况。这是在@drawable/custom_button_green 中定义的:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/btn_default_pressed" />
<item android:state_focused="false" android:state_enabled="true"
android:drawable="@drawable/btn_default_normal_green" />
<item android:state_focused="false" android:state_enabled="false"
android:drawable="@drawable/btn_default_normal_disable" />
<item android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/btn_default_selected" />
<item android:state_enabled="true"
android:drawable="@drawable/btn_default_normal_green" />
<item android:state_focused="true"
android:drawable="@drawable/btn_default_normal_disable_focused" />
<item
android:drawable="@drawable/btn_default_normal_disable" />

谁能帮我弄清楚为什么按钮不再遵循这些状态?

谢谢!

最佳答案

我认为您的监听器的 onTouch 方法应该返回 false,否则您只是覆盖了在触摸事件时更新可绘制对象的“正常”行为。

关于Android OnTouchListener 停用按钮布局状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15790519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com