用戶報告我們的應用程序佈局的特定區域停止響應點擊(未點擊按鈕點擊)。什麼可能導致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