Android - EditText与软键盘重叠

4

我正在处理一个包含一些EditText的活动。当我点击/触摸EditText时,软键盘会出现。但是位于屏幕底部的EditText与软键盘重叠。EditText的上半部分显示,下半部分在键盘下面。

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

有什么建议可以避免这种情况吗?

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);
        }



    });

//本质上,我们创建了一个可运行的程序,它会滚动到某个视图的新位置,该视图是您希望在屏幕上可见的。只有当该视图不在滚动视图的边界内(即不在屏幕上)时,才执行该可运行程序。这样,它就会将滚动视图移动到所引用的视图(在我的情况下是“someview”,它是一条分隔线)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接