用户报告我们的应用程序布局的特定区域停止响应点击(未点击按钮点击)。什么可能导致Android布局的特定区域停止响应按钮点击?
我们有几个键盘布局可以换入和换出。下面是我们如何做到这一点:
keypad1.setVisibility(RelativeLayout.GONE);
keypad2.setVisibility(RelativeLayout.VISIBLE);
keypad2.measure(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
int newDimension = (int) (keypad2.getMeasuredHeight() + getResources().getDimension(R.dimen.keypad_toggle_button_height));
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) keypadContainer.getLayoutParams();
layoutParams.height = newDimension;
keypadContainer.setLayoutParams(layoutParams);
父布局android:animateLayoutChanges="true"
所以这种布局变化平滑的动态。
用户可以访问全部按钮keypad1
。当keypad2
加载到视图中时,用户可以点击大多数的按钮,但底部的按钮除外。因为keypad2
是稍高比keypad1
,我倾向于认为可能会发生此问题,因为布局调整大小后未正确更新,并且未收到触摸事件。
不用说,这对我们和我们的大部分用户来说都是完美的,我们还没有能够在我们拥有的任何模拟器或设备上重现问题。受影响的系统是运行Lollipop(Android 22)的三星Galaxy S5。我们已收到来自用户的应用截图,它看起来与我们期望的屏幕大小和分辨率完全相同。
我们做错了什么?我们如何解决它?
谢谢!
编辑:这里是相关的布局XML片段。
<LinearLayout
android:id="@+id/keypad_container"
android:layout_width="match_parent"
android:layout_height="@dimen/keypad_toggle_button_height"
android:layout_alignParentBottom="true"
android:gravity="top"
android:orientation="vertical">
<View
android:id="@+id/toggle_button"
android:layout_width="match_parent"
android:layout_height="@dimen/keypad_toggle_button_height"
android:background="@drawable/toggle"
android:clickable="true"
android:onClick="toggleKeyboard"
/>
<com.app.views.KeyboardViewA
android:id="@+id/keypad_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent">
</com.app.views.KeyboardViewA>
<com.app.views.KeyboardViewB
android:id="@+id/keypad_2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
</com.app.views.KeyboardViewB>
</LinearLayout>
这些键盘是否包裹到其他一些布局中?您隐藏了实际的键盘,但包装布局可能仍然在新的键盘之上。 – mihail
谢谢@mihail,我已将XML布局添加到上述问题中。小键盘是同一父容器中的所有同级视图。 – eli
可能是一个布局是在另一个之上,你可以尝试使用给布局的宽度和高度,以避免重叠? – Vishwa