键盘打开android时只推滚动视图

时间:2015-02-13 08:19:29

标签: android

您好我有包含3个视图的活动

-RelativeLayout
---TextView                 1)
---ScrollView               2)
-----FrameLayout
---------ListView
---------EditText -----------> When I click over here (2) view only pushup
---TextView                 3)

我只想 2)这是scrollview 应该在键盘打开时上推,但是现在它推 TextView 3

我在清单中试过了

android:windowSoftInputMode="adjustNothing"
or
android:windowSoftInputMode="adjustResize" 
or
android:windowSoftInputMode="adjustPan" 

但没有任何反应,3)textview也推动了2)Scrollview

3 个答案:

答案 0 :(得分:9)

打开软键盘会减少可用的屏幕空间,它不会改变TextView 3)位于屏幕底部的事实。

因此,如果我理解正确,您打算在打开键盘时不显示TextView 3?

如果是这样,您可以尝试使用此方法here来捕获软键盘的显示/隐藏并显示/隐藏Textview。

修改的 另请尝试使用android:isScrollContainer="false"android:windowSoftInputMode="adjustNothing"

在滚动视图上使用android:windowSoftInputMode="adjustPan"

答案 1 :(得分:3)

你可以做的是检测键盘是否显示隐藏文本视图而id不显示

这是一段代码

_Your_Text_View.getViewTreeObserver().addOnGlobalLayoutListener(
            new OnGlobalLayoutListener() {
                @Override
                public void onGlobalLayout() {
                    Rect r = new Rect();
                    // r will be populated with the coordinates of your view
                    // that area still visible.
                    activityRootView.getWindowVisibleDisplayFrame(r);
                    heightDiff = activityRootView.getRootView()
                                .getHeight() - (r.bottom - r.top);


                if (heightDiff > 100) { // if more than100 pixels, its
                            // probably a keyboard...

                    //here hide your TextView
                }else{

                         //here Show your TextView
                }
            });

还要在你的清单中写下那段代码

android:windowSoftInputMode="stateHidden|adjustPan"

答案 2 :(得分:0)

伙计们我遇到了同样的问题,并通过一个非常方便和最简单的解决方案避难,该解决方案涉及在您的xml文件中的 Scrollview 标记中添加一个属性。那是

{
  "Data": [{
      "Rsrc": "DB",
      "status": "100",
      "TimeStamp": "TimeStamp1"
    },
    {
      "Rsrc": "Oracle",
      "status": "0",
      "TimeStamp": "TimeStamp1"
    },
    {
      "Rsrc": "Oracle",
      "status": "100",
      "TimeStamp": "TimeStamp2"
    },
    {
      "Rsrc": "DB",
      "status": "100",
      "TimeStamp": "TimeStamp2"
    }
  ]
}

这可以防止底部布局位于键盘上。希望它能解决问题。