"adjustResize"Android

Sat*_*hya 3 mobile android

我有一个使用全屏运行的应用程序:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)

由于这个布局,android:windowSoftInputMode="adjustResize"不能正常工作,即它没有调整大小.

有没有办法克服这个问题?

Sta*_*iel 5

仅供参考:这是一个现有的AOSP(Android开源项目)错误:http://code.google.com/p/android/issues/detail? id = 5497

理想情况下,这个错误将被修复,但在此之前,这里有几个关于它如何解决的想法.由于我不知道这涉及哪种应用场景,因此这些可能不太适用.

  1. 与我对上一个答案的最佳解释一致,设计你的布局,以便adjustPan可以正常工作.我能想到的第一件事是没有任何页眉或页脚在键盘启动时保留在屏幕上.

  2. 不要将FLAG_FULLSCREEN与可以接受文本输入的布局一起使用.在接受输入时显示状态栏可能不是什么大问题.但是,对于使用具有全屏模式的嵌入式输入字段(如Web浏览器)查看内容的内容,这根本没有多大意义.

  3. 实现自己的类似adjustResize的行为.我不确定这会有多好用,但是你可以编写一个子类来导致显示键盘(例如:EditText),你可以跟踪键盘显示的时间,也可以接管调用show和隐藏键盘(至少覆盖onKeyUp和onTouchEvent).显示时,调整内容大小 - 可能最好猜测软输入高度,因为用户可以安装不同的软输入方法.我相信这在技术上是困难的,并且在没有极端需要的情况下尝试是不合理的.