您好我有包含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
答案 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"
}
]
}
这可以防止底部布局位于键盘上。希望它能解决问题。