软键盘弹出布局上移

一、摘要

     公司登录功能让实现弹出软键盘,布局滑动效果使得将登录按钮顶上去,网上查了很多资料,大部分都是添加adjustPan | stateVisible 的属性,但是问题是我的界面效果没什么效果,它只是弹出到输入框的底部,离想要的效果还有很大差异。也有的网友说直接用LinearLayout 的权重 + ScrollView 来实现,但是效果也是不太理想。

二、功能实现

     实现登录页面软键盘顶起功能,主要用了:

     1)ScrollView + LinearLayout 权重效果;

     2)设置需要顶起的控件,然后计算向上滑动距离。

三、布局

      主要实现:使用ScrollView 作为最外层的控件,在布局中使用LinearLayout 的权重效果进行界面的实现




    

        

        

            

                
            

            

                

                    

                    
                
              
                

                    

                    
                


            


        

        

            
        

    


四、实现软键盘弹出布局的滑动

      测量软键盘弹出的时候布局滑动的距离。

LayoutUtil.controlKeyboardLayout(rlLoginBg, llEmpty);
public class LayoutUtil {

    public static void controlKeyboardLayout(final View root, final View scrollToView) {
        root.getViewTreeObserver().addOnGlobalLayoutListener(
                new ViewTreeObserver.OnGlobalLayoutListener() {
                    @Override
                    public void onGlobalLayout() {
                        Rect rect = new Rect();
                        root.getWindowVisibleDisplayFrame(rect);
                        int rootInvisibleHeight = root.getRootView()
                                .getHeight() - rect.bottom;
                        if (rootInvisibleHeight > 100) {
                            int[] location = new int[2];
                            scrollToView.getLocationInWindow(location);
                            int srollHeight = (location[1] + scrollToView
                                    .getHeight()) - rect.bottom;
                            root.scrollTo(0, srollHeight);
                        } else {
                            root.scrollTo(0, 0);
                        }
                    }
                });

    }

}

五、总结

       目前我的界面软件顶起登录按钮用这种方式实现了,缺少一个点都无法实现,布局顶起的效果是实现了,但是目前我的登录有快捷登录效果,验证码倒计时存在界面闪动问题,目前还在解决中,希望哪位有好的解决方法可以分享下。


你可能感兴趣的:(Android,布局,软键盘,顶起布局,登录,软键盘)