先说需求:如图
需求如上 简单的状态栏和中间物品的展示以及底部的输入框。
问题:一开始我用的相对布局,结果发现edittext 会被键盘所覆盖,本人也是菜鸡。开始了慢慢的解决道路。
1.发现在Manifest中 <activity >项中添加这个属性 android:windowSoftInputMode ,具体就不介绍了,自己百度
关键词 android:windowSoftInputMode。 !! !!!但是缺点 整体布局会压缩 或者看不到顶部 这不是我想要的。
2.继续百度后发现有人教用 :改用在AndroidMaifest.xml中使用的stateHidden|adjustResize,其中stateHidden是为了让首次进入页面是阻止软件盘的弹出,adjustResize是压缩布局。
用这种方法时,有一下注意事项:
a. 布局中必须有ListView或者ScrollView。
b. ListView或ScroolView中的属性layout_weight必须比较大。
c. ListView或ScroolView的属性layout_height一定要设置成wrap_content.
改了不顶用,而且底部布局还变形了。心烦。上个厕所去。
3.继续想,要不动态设置底部的高度,百度一顿C V。 完美,实现了哈哈。哈哈哈哈,,,
咦,测试机华为:出现了高度不对,底部布局与键盘有一个间隔。XXX 华为!!! (原因应该是用了张弘扬大神的百分比布局,减去底部状态栏)
(http://jingyan.baidu.com/article/86f4a73e77195e37d6526998.html 百度出来的四种方案!)
最终解决方案:
4.我经常有种感觉每当我想不通问题的时候,烟! 就是我的灵感。
<FrameLayout width=math height=math
<ReletiveLayout width=math height=math>
..................//排除除底部输入框那一坨的布局
</RelativeLayout >
<LinearLayout width=math height=math fitsystemwindows =true gravity= bottom>
<RelativeLayout >
..........//底部输入框那一坨
</RelativeLayout>
</LinearLayout>
</FrameLayout>
OK this s all。 其实就是 fitsystemwindows =true 这个属性起了作用 , 我这里是<FrameLayout> 分别放了2个布局,一个没有fitsystemwindows 所以他就不会改变 反之用一个布局代替原来的来进行变化。
第一次也东西分享也不知道有没有用,不对的地方多多指教。=。=