EditText导致的问题
在使用EditText
并且将其放在屏幕底部的时候,往往会使用例如:
- 1
- 1
等这样的参数,但是它有着很大的缺点,会导致界面上移、EditText
被挡住的问题一些问题。
简单思考EditText键盘弹出后为什么导致界面上移呢?
不从代码层次上考虑,当键盘弹出后,键盘本身占据一定空间会致使EditText
随之上移,EditText
上移也会导致同一布局层次的其他控件发生位移状况,这就是我们常常碰到的情况,也是非常头痛。
那么,如果将EditText
放在一个独立层次的控件中,并且让其上部(因为往往EditText
都会放在底部)有一个自动控制其大小宽高的控件,是不是就会解决这个问题呢?
答案是肯定的!
将EditText放入独立的层次布局中,并辅以可自动收缩的控件。
类似于这样:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
你可以直接将这段代码放入到你的Demo中,就会惊人的发现EditText
会如你所愿的弹出。
但是问题真正结束了么?当然没有。
在全屏化的体验中,我们的背景往往是一个VideoView
或SurfaceView
等类似的播放控件。
如果仅仅按照我们如上所示的做,你会发现VideoView
或SurfaceView
这样的控件,在播放时播放内容会被自动缩小,这也是我们不可接受的。