Android开发技术中心Android软键盘安卓技巧

Android 键盘顶起最终完美解决方法

2017-04-01  本文已影响1796人  jetgege

以登录页面为例:

device~1.gif

1.在布局底部放置一个透明的 view_Bottom,通过监听键盘弹出修改 view_Bottom的高度实现,键盘弹出顶起,键盘消失收回 的效果

    <View
        android:id="@+id/view_Bottom"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="200dp">
    </View>
  1. 获取根布局和底部View
    View  rootView;
    View view_Bottom;
    view_Bottom = findViewById(R.id.view_Bottom);
    rootView=findViewById(R.id.root_View);
  1. 监听根布局Layout的布局变化,键盘弹出修改view_Bottom的高度,收起也修改view_Bottom的高度

 //完美解决键盘顶起问题
        rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                Rect r = new Rect();
                rootView.getWindowVisibleDisplayFrame(r);
                int screenHeight = rootView.getRootView().getHeight();
                int heightDifference = screenHeight - (r.bottom - r.top);
                if(heightDifference>150) params.height=900;
                else params.height=600;
                view_Bottom.setLayoutParams(params);
               // Log.e("Keyboard Size, Size: " ,String.valueOf(heightDifference));
            }
        });

4.想要不再界面一出现就弹出键盘,完善用户体验,只要在根布局里加入,就能完美解决

    android:focusable="true"
    android:focusableInTouchMode="true"

Demo连接

上一篇下一篇

猜你喜欢

热点阅读