键盘打开时如何使android edittext字段可见?

时间:2013-12-01 18:40:50

标签: android android-edittext android-animation android-softkeyboard

在我的Android应用程序中,在登录页面上,有两个edittext字段用户名,密码。问题是当我点击密码时,弹出键盘然后大部分密码字段被键盘覆盖。

我想基本上有一个动画,当键盘弹出时,两个字段向上(平滑)移动,当键盘消失时,字段应该平滑地返回。有谁知道我怎么能这样做?

另外,我想避免使用固定数量的像素来移动,因为这将取决于设备。如果可能的话可能会使用像ems单位这样的东西,因此它适用于所有屏幕密度。

由于

1 个答案:

答案 0 :(得分:2)

要执行此操作,您必须实现* addOnGlobalLayoutLitener。使用scrollview包装整个子视图,然后滚动布局。通过更改滚动值来测试您的应用。 *

final View activityRootView = findViewById(R.id.signinRootView);
        activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(
                new ViewTreeObserver.OnGlobalLayoutListener() {
                    @Override
                    public void onGlobalLayout() {
                        int heightDiff = activityRootView.getRootView()
                                .getHeight() - activityRootView.getHeight();
                        if (heightDiff > 100) {
                            ((ScrollView) findViewById(R.id.scrollview))
                                    .scrollTo(0, findViewById(R.id.et_password)
                                            .getBottom() + 80);
                        } else
                            ((ScrollView) findViewById(R.id.scrollview))
                                    .scrollTo(0, 0);
                    }
                });

**