Android:所有视图都需要点击 2 次才能触发 OnClick 事件
Android: All Views take 2 taps to fire OnClick Event
我的 Android 平板电脑应用程序(7 英寸平板电脑)出现问题,我需要点击任何视图两次才能触发点击事件或焦点事件。当我说任何视图时,我的意思是:(ImageView、EditText、Spinner 或任何自定义视图(即:带有子视图的 RelativeLayout))。在最初必须点击两次之后——点击事件似乎更具响应性。但是接下来 Activity 会出现同样的问题。我已经看到了解决方案,您可以使用 Touch Events 代替或 Listen for a focus event 除了 click 事件然后调用 performClick() 但其中 none 已经奏效并且看起来像 Band Aides 并且没有找到根源的问题。对于我所有活动中的所有视图,我需要一个包罗万象的解决方案。我在 Android 4.2.2 使用 SDK 16。此外,事件是否涉及根布局或子视图也没有关系。
更新(2015 年 1 月 30 日):
我认为问题与导航栏或 "soft buttons" 有关。我总是默认隐藏它以获得房地产。但是,如果我向上滑动以显示导航栏,然后点击我的视图之一,它将可靠地触发点击事件。那么我怎样才能隐藏导航栏并让我的点击事件可靠地触发呢?嗯嗯.....
未可靠接收点击事件的示例视图:
<ImageView
android:id="@+id/img_ts_logo"
android:layout_width="@dimen/app_icon_width"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/app_icon_margin"
android:layout_marginRight="@dimen/app_icon_margin"
android:src="@drawable/logo_notext"/>
private View.OnClickListener logoListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.android.settings", "com.android.settings.LanguageSettings");
startActivity(intent);
}
};
我认为这与显示的软导航栏有关(我假设你最初隐藏它),也许如果你永久隐藏导航键你就不必双击(初始点击带来打开隐藏的键,然后激活按钮上的听众)
在您的按钮或主布局上试试这个:
[view].setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
参考:Hide ICS back home task switcher buttons
我的 Android 平板电脑应用程序(7 英寸平板电脑)出现问题,我需要点击任何视图两次才能触发点击事件或焦点事件。当我说任何视图时,我的意思是:(ImageView、EditText、Spinner 或任何自定义视图(即:带有子视图的 RelativeLayout))。在最初必须点击两次之后——点击事件似乎更具响应性。但是接下来 Activity 会出现同样的问题。我已经看到了解决方案,您可以使用 Touch Events 代替或 Listen for a focus event 除了 click 事件然后调用 performClick() 但其中 none 已经奏效并且看起来像 Band Aides 并且没有找到根源的问题。对于我所有活动中的所有视图,我需要一个包罗万象的解决方案。我在 Android 4.2.2 使用 SDK 16。此外,事件是否涉及根布局或子视图也没有关系。
更新(2015 年 1 月 30 日): 我认为问题与导航栏或 "soft buttons" 有关。我总是默认隐藏它以获得房地产。但是,如果我向上滑动以显示导航栏,然后点击我的视图之一,它将可靠地触发点击事件。那么我怎样才能隐藏导航栏并让我的点击事件可靠地触发呢?嗯嗯.....
未可靠接收点击事件的示例视图:
<ImageView
android:id="@+id/img_ts_logo"
android:layout_width="@dimen/app_icon_width"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/app_icon_margin"
android:layout_marginRight="@dimen/app_icon_margin"
android:src="@drawable/logo_notext"/>
private View.OnClickListener logoListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.android.settings", "com.android.settings.LanguageSettings");
startActivity(intent);
}
};
我认为这与显示的软导航栏有关(我假设你最初隐藏它),也许如果你永久隐藏导航键你就不必双击(初始点击带来打开隐藏的键,然后激活按钮上的听众)
在您的按钮或主布局上试试这个:
[view].setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
参考:Hide ICS back home task switcher buttons