Android实现输入法弹出时把布局顶上去和登录按钮顶上去的解决方法

  

,背景:在写登录界面时,老板就觉得在输入密码的时候谈出来的输入法软键盘把登录按钮遮挡住了(入下图所示,不爽),连输入框都被挡了一半,于是不满意了,要叫我改,于是我看QQ的登录效果,我就去研究了一下,弹出输入法整个布局上来了,终于让老板满意了。

  

 Android实现输入法弹出时把布局顶上去和登录按钮顶上去的解决方法”> <img src=

  

(如上图这样,老板不满意的,呵呵)

  

  

,,,,我看了很多博客和问答,很多人都说直接在在AndroidManifest。xml中给这个活动设置& lt;活动android: windowSoftInputMode=皊tateVisible | adjustPan”…在这样就好使了,这个是否在逗,整个布局向上移动并不明显,反正我的是不好,使不知道那些博主是怎么弄好使的。不过,看评论,也有很多人说不好使。那就做一个大家都好使的代码出来。先看效果。

  

 Android实现输入法弹出时把布局顶上去和登录按钮顶上去的解决方法”> <img src=

  

,,,哈哈,大家有没有看的到,连登录按钮都一起跑上去了,应该是顶上去的。老板再也不用担心登录按钮被覆盖掉了。

  

,,,那咱们就上代码啦:代码不多,全在布局上,就可以解决只,,
  

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; ScrollView xmlns: android=" http://schemas.android.com/apk/res/android "   android: layout_width=" match_parent " android: layout_height=癿atch_parent”   android: fillViewport=" true "   android: fadeScrollbars=" true "比;   LinearLayout & lt;   android: layout_width=" match_parent "   android: layout_height=" wrap_content "   面向android:=按怪薄北?   LinearLayout & lt;   android: layout_width=" match_parent "   android: layout_height=" 0 dp”   android: layout_weight=" 1 "   android:重力=岸ゼ秥 center_horizontal”   android:取向=按怪薄?   android:背景=" @color/red2”   android:可见性=翱杉北?   & lt; ImageView & lt; !——这个其实是我放布局中间的控件,我随便写的,放任何控件都可以——比;   android: layout_width=" 200 dp”   android: layout_height=" 160 dp”/比;   & lt;/LinearLayout>   LinearLayout & lt;   android: layout_width=" match_parent "   android: layout_height=" 0 dp”   android: layout_weight=" 1 "   android: alwaysDrawnWithCache=" true "   android:重力="中心| center_horizontal”   android:取向=按怪薄?   android:可见性=翱杉?   android:背景=癅color/abc_search_url_text_normal”比;   EditText & lt;   android:背景=" @color/白”   android: layout_width=" 200 dp”   android: layout_height=" 60 dp "/比;   & lt;/LinearLayout>   LinearLayout & lt;   android: layout_width=" match_parent "   android: layout_height=" 0 dp”   android: layout_weight=" 1 "   android:背景=" @color/玉米雌穗花丝”   android:重力=岸ゼ秥 center_horizontal”   android:取向=按怪薄?   android:可见性=翱杉北?   & lt;按钮   android: layout_marginTop=" 20 dp”   android:重力="中心"   android:文本="登录”   android: layout_width=" 200 dp”   android: layout_height=?0 dp/比;   & lt;/LinearLayout>   & lt;/LinearLayout>   & lt;/ScrollView>之前      

,对上面就是所有视线代码了,外面一个滚动视图,包含一个LinearLayout,在中间包含了三个LinearLayout,当然了包含三个什么容器控件都行,但是一定要用权重(layout_weight)来约束,这是重点,我只说了一遍,还有就是LinearLayout内部的布局尽量用wrap_content,即时要固定高度也要适当,调节调节就好了。

  

使用的时候很简单,就只有上面一段布的局,然而根本用不着神马AndroidManifest.xml中给这个活动设置

        & lt;活动android: name=" .view.activity.multisend。MultiChatActivity " android: windowSoftInputMode=" stateVisible | adjustResize”/比;之前      

对于这段代码,是可以将底部如果有输入框(最好用FrameLayout包裹),可以向上移动的,类似于QQ输入框。可以不用滚动视图而且输入框向上滚动时,整个布局不会向上滚动。

Android实现输入法弹出时把布局顶上去和登录按钮顶上去的解决方法