当 AppTheme 为半透明时,软键盘与 EditTextPreferenceDialogFragmentCompat 重叠

Posted

技术标签:

【中文标题】当 AppTheme 为半透明时,软键盘与 EditTextPreferenceDialogFragmentCompat 重叠【英文标题】:Soft keyboard overlaps EditTextPreferenceDialogFragmentCompat when AppTheme is Translucent 【发布时间】:2017-04-17 03:06:57 【问题描述】:

使用

最新的 V14 首选项支持库

半透明主题在 API > 19

EditTextPreferenceCompatPreferenceFragmentCompat

问题

点击 EditTextPreferenceCompat 之后弹出 EditTextPreferenceDialogFragmentCompat 控件被软键盘重叠,这是错误的:

如果我使用 non 半透明主题或 API 如果我使用普通 DialogFragment with 半透明主题 - 一切都很好。

我尝试了什么?

https://github.com/Gericop/android-Support-Preference-V7-Fix图书馆 手动设置窗口的adjust_resize/adjust_pan(但我认为它不适用于半透明/全屏) 禁用/启用半透明。它有效,但 = 不适合我。

有什么解决方法吗?

【问题讨论】:

半透明主题在这里搞砸了。也许试试这个解决方案:***.com/questions/7417123/… @R.Zagórski 普通 DialogFragments 与半透明主题配合良好 - 所以我认为它仅与 V14 实现有关 @localhost 可能半透明主题覆盖了 onConfigurationChanged。当您覆盖 onConfigurationChanged 时,通常会发生此行为。你能用显示错误的代码在 github 上创建一个存储库吗?所以我可以做一些测试。 【参考方案1】:

半透明/全屏会导致adjust_resize不起作用。如果你得到软键盘的高度可以帮助你解决问题,你可以通过软键盘的高度来改变视图的高度。但是google并没有开放获取软键盘高度的api。一种方法是设置一个视图树监听器。

【讨论】:

【参考方案2】:

有同样的问题。

尝试将这一行添加到 AppTheme

<item name="android:dialogTheme">@style/Theme.AppCompat.Light.Dialog</item>

或通过 DialogFragment 中的 setStyle 方法。

您可以选择您想要的任何其他对话框主题。

【讨论】:

以上是关于当 AppTheme 为半透明时,软键盘与 EditTextPreferenceDialogFragmentCompat 重叠的主要内容,如果未能解决你的问题,请参考以下文章

有没有修改过android 4.22 NavigationBar的黑色背景为半透颜色

在 UITableViews 中设置导航栏半透明以启动动画

H5软键盘弹起收回(IOS与Android)

CardView 背景设置使用 cardBackgroundColor 覆盖阴影

android 软键盘的显示与隐藏问题的研究

即使连接了硬件键盘,也会显示iPhone软键盘