Roc*_*nat 32 android android-softkeyboard android-4.4-kitkat
我们在我们的应用程序中应用了新的Android KitKat半透明主题,当键盘出现时,我们遇到了一个奇怪的问题.如果我们不使用新android:windowTranslucentStatus属性,则所有内容都照常工作:屏幕调整大小,并且所有内容都保持可见.但是当我们使用时android:windowTranslucentStatus,屏幕不会调整大小,我们EditText会被键盘隐藏.
问题的一个示例:

屏幕之间的唯一区别在于样式中的属性:
第一个屏幕:
<item name="android:windowTranslucentStatus">false</item>
第二个屏幕:
<item name="android:windowTranslucentStatus">true</item>
我们认为这是Kitkat发布的一个错误,但我们希望您了解这一点.我们有点生气了.当然,如果有人有解决方案,那将是惊人的.
编辑:我刚刚将此问题添加到Android问题跟踪器.您可能有兴趣主演此问题:https://issuetracker.google.com/issues/36986276
我也遇到了这个非常烦人的问题.但最终我得到了这个工作:
<style name="Theme.MyApp">
<item name="android:windowTranslucentStatus">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我没有在主题中设置fitSystemWindows ="true",而是将其设置在我的布局的根视图上.
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:fitsSystemWindows="true"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
我还在我的活动中使用了很棒的SystemBarTintManager:
new SystemBarTintManager(this).setStatusBarTintEnabled(true);
Run Code Online (Sandbox Code Playgroud)
这似乎运作良好,但诚然看起来相当善变.希望它无论如何都能帮助别人!
解决方法是:
添加 Touch 或 Focus 或 ClickListener 并将 EditText 保持布局向上移动到屏幕的一半。然而,这确实不是它应该工作的方式,所以请祈祷并希望谷歌能够修复它。
EditText e = new EditText(this);
e.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus)
v.animate().x(screenHeight/2f).start();
else
v.animate().x(screenHeight).start();
}
});
Run Code Online (Sandbox Code Playgroud)
只需根据您的防守布局调整 v 并确保您移动的位置看起来不错。
| 归档时间: |
|
| 查看次数: |
13904 次 |
| 最近记录: |