以下是这种情况的样子。
我的布局文件就像:
<RelativeLayout> # Parent
<RelativeLayout> # Camera preview
</RelativeLayout>
<LinearLayout> # Bottom bar
</LinearLayout>
</RealtiveLayout>
我理解Android通过评估它们是否在视图区域内来添加/删除视图,但到目前为止我无法通过任何方式解决这个问题。
使用android:windowSoftInputMode="adjustResize"
确保操作栏始终可见是不可行的,因为这会破坏上面相机预览的宽高比。
答案 0 :(得分:0)
请参阅ActionBarSherlock actionbar disappears when focus changes from EditText to Button
对于那些无法切换到adjustResize
的人。
我注意到屏幕关闭再打开后动作条重新出现,所以我用这个黑客解决了它:
dialog.setOnDismissListener(dialog1 -> {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
handler.postDelayed(() -> {
activity.findViewById(android.R.id.content).requestLayout();
}, 600);
}
})
此代码大约在键盘结算后请求重绘整个层次结构。检查的SDK版本和延迟值可能会更低,但我决定安全地玩。