Android - EditText与Softkeyboard重叠

时间:2011-03-06 10:15:07

标签: android android-edittext

我正在开发一个包含EditText的Activity。当我单击/触摸EditText软键盘时出现。但位于屏幕底部的EditTexts与软键盘重叠。显示EditText的上半部分,下半部分位于键盘下方。

我在AndroidManifest.xml中设置android:windowSoftInputMode="adjustPan"

有关如何避免它的任何建议吗?

2 个答案:

答案 0 :(得分:4)

我认为您应该查看this链接。那个概率。看起来非常类似于你的那个。

答案 1 :(得分:0)

对我来说,我不想假设键盘高度是一定的测量值。无论您关注什么视图制作onTouchListener然后执行此操作:

    setOnTouchListener(new OnTouchListener()  {



        Runnable shifter=new Runnable(){
            public void run(){
                try {
                    int[] loc = new int[2];                 
                    //get the location of someview which gets stored in loc array
                    findViewById(R.id.someview).getLocationInWindow(loc);
                    //shift so user can see someview
                    myscrollView.scrollTo(loc[0], loc[1]);   
                }
                catch (Exception e) {
                    e.printStackTrace();
                }   
            }}
        };

        Rect scrollBounds = new Rect();
        View divider=findViewById(R.id.someview);
        myscollView.getHitRect(scrollBounds);
        if (!divider.getLocalVisibleRect(scrollBounds))  {
            // the divider view is NOT  within the visible scroll window thus we need to scroll a bit.
            myscollView.postDelayed(shifter, 500);
        }



    });

//基本上我们制作一个可运行的滚动到某个视图的新位置,你想在屏幕上看到它。只有当它不在scrollviews范围内(它不在屏幕上)时才执行该runnable。这样它就会将scrollview移动到引用的视图(在我的情况下' someview'这是一个行分隔符)。