Android ImageButton 有时点击不起作用
Android ImageButton click not working sometimes
我在 xml 中使用 ImageButton,如下所示:
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton_home"
android:src="@drawable/home_icon"
android:background="@android:color/transparent"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:focusableInTouchMode="false"
android:focusable="false"
android:clickable="true"
/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton_back"
android:src="@drawable/back_icon"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:background="@android:color/transparent"
android:visibility="gone"
android:focusableInTouchMode="false"
android:focusable="false"
android:clickable="true"
/>
</FrameLayout>
一次只能看到一个图像按钮。
我在我的 java 代码中捕获点击,如下所示:
imageButtonHome.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent homeIntent = new Intent(SettingsActivity.this, MainActivity.class);
startActivity(homeIntent);
}
});
这有时工作正常,但并非总是如此。
每当我点击图像按钮时,我都会在 logcat 中看到这一行:
D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
此行始终显示,即使我的 ImageButton 单击操作未执行。
但是当我的 ImageButton 单击正常工作时,另一行加起来记录:
D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
D/AbsListView: Get MotionRecognitionManager
我希望我的图像按钮每次都能正常工作。请帮忙。
尝试使用 LinearLayout 而不是 FrameLayout。
FrameLayout 被认为只包含 1 个 children。
为您的 ImageButtons 提供一些填充以捕获触摸事件。
替换这个试试。
imageButtonHome.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent homeIntent = new Intent(SettingsActivity.this, MainActivity.class);
startActivity(homeIntent);
}
});
在 ImageButton 上使用 setOnClickListener(...)
我在 xml 中使用 ImageButton,如下所示:
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton_home"
android:src="@drawable/home_icon"
android:background="@android:color/transparent"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:focusableInTouchMode="false"
android:focusable="false"
android:clickable="true"
/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton_back"
android:src="@drawable/back_icon"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:background="@android:color/transparent"
android:visibility="gone"
android:focusableInTouchMode="false"
android:focusable="false"
android:clickable="true"
/>
</FrameLayout>
一次只能看到一个图像按钮。 我在我的 java 代码中捕获点击,如下所示:
imageButtonHome.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent homeIntent = new Intent(SettingsActivity.this, MainActivity.class);
startActivity(homeIntent);
}
});
这有时工作正常,但并非总是如此。 每当我点击图像按钮时,我都会在 logcat 中看到这一行:
D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
此行始终显示,即使我的 ImageButton 单击操作未执行。
但是当我的 ImageButton 单击正常工作时,另一行加起来记录:
D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
D/AbsListView: Get MotionRecognitionManager
我希望我的图像按钮每次都能正常工作。请帮忙。
尝试使用 LinearLayout 而不是 FrameLayout。
FrameLayout 被认为只包含 1 个 children。
为您的 ImageButtons 提供一些填充以捕获触摸事件。
替换这个试试。
imageButtonHome.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent homeIntent = new Intent(SettingsActivity.this, MainActivity.class);
startActivity(homeIntent);
}
});
在 ImageButton 上使用 setOnClickListener(...)