Android输入框布局如何随键盘变化

2017-04-24  本文已影响0人  ch_9820

先说需求:如图

1.jpg

需求如上    简单的状态栏和中间物品的展示以及底部的输入框。

问题:一开始我用的相对布局,结果发现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 所以他就不会改变   反之用一个布局代替原来的来进行变化。

第一次也东西分享也不知道有没有用,不对的地方多多指教。=。=

上一篇下一篇

猜你喜欢

热点阅读