子布局中的 ImageButton onClick 方法不起作用

发布于 2024-11-15 02:21:13 字数 1405 浏览 2 评论 0原文

我的视图上有 ImageButton,当我尝试单击它时,它不起作用(未调用方法),但如果我使用模拟器键盘单击,它就会起作用。 adb shell logcat 不打印任何内容。

我的 main.xml 布局:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">  
    <LinearLayout   
        android:id="@+id/btn"   
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        >
        <ImageButton            
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_gravity="center_horizontal"  
            android:src="@drawable/ic_btn"
            android:clickable="true"
            android:onClick="click"         
         />
         <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="Text" />
    </LinearLayout>                   
</merge>

活动中的单击方法:

public void click(View view) {
    tv.setText("clicked");
}

如果我将 ImageButton 作为 的直接子元素,则单击方法有效。我的构建目标是 Android 2.2。 那么,这里出了什么问题呢?


更新 我只知道这是因为按钮上有动画,并且动画结束后按钮的位置没有更新。我之前没有包含它,因为我不知道它是否相关。

I have ImageButton on my View that is not working (method not called) when I try to click on it, but it is working if I click using the emulator keyboard. adb shell logcat doesn't print anything.

my main.xml layout:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">  
    <LinearLayout   
        android:id="@+id/btn"   
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        >
        <ImageButton            
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_gravity="center_horizontal"  
            android:src="@drawable/ic_btn"
            android:clickable="true"
            android:onClick="click"         
         />
         <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="Text" />
    </LinearLayout>                   
</merge>

the click method in activity:

public void click(View view) {
    tv.setText("clicked");
}

And if I put the ImageButton as direct child element of <merge>, the click method is working. My build target is Android 2.2.
So, what is wrong here?


UPDATE I just know that this is because I have animation on the button, and location of the button is not updated after animation end. I didn't include that previously because I didn't know if it is related.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文