键盘放置掩盖了EditText下方的视图想要保持可见
我有一个活动,基本上是一个很长的输入字段。 在每一行上,我想显示一个TextView作为每个EditText下方的提示文本,并且我希望TextView在用户输入数据时始终保持可见。 不幸的是,软键盘会隐藏提示文本,并且始终将其自身置于EditText下方。 是否有任何技术可以让EditText下面的TextView在软键盘出现并且内容调整(通过windowSoftInputMode = adjustResize | adjustPan)时也可见,而无需用户滚动?
编辑:通过更深入地理解问题,我认为你应该在用户点击Edittext时以编程方式添加滚动条。 这是做这件事的代码:
private final void focusOnView()
{
new Handler().post(new Runnable()
{
@Override
public void run()
{
your_scrollview.scrollTo(0, your_EditBox.getBottom());
}});
}
从我个人的经历来看,我认为没有这种方式可以做到这一点。 你可以做的是将提示textview放在editext的右侧。 或者在Edittext上使用提示占位符来使用现代方法:
在XML中,它仅仅是android:hint="someText"
以编程方式,您可以使用edittext.setHint(int);
在上面的方法中传递R.string.somestring。
Vishavjeet让我在正确的轨道上建议我scrolldown揭示可能被键盘重叠的视图。 下面是一个类似于我用来解决问题的功能。 当TextView上方的EditText获得焦点时,可以调用它:
// View targetView; // View that may be hidden by keyboard
// ScrollView scrollContainerView; // Scrollview containing hiddenView
//
void assureViewVisible (View targetView, ScrollView, scrollContainerView) {
Window rootWindow = activity.getWindow();
Rect rMyView = new Rect();
View rootview = rootWindow.getDecorView();
rootview.getWindowVisibleDisplayFrame(rMyView); // Area not taken up by keyboard
int subTextPos[] = new int[2];
targetView.getLocationInWindow(subTextPos); // Get position of targetView
int subTextHt = targetView.getHeight(); // Get bottom of target view
if ((subTextPos[1]+subTextHt) > rMyView.bottom) { // Is targetView at all obscured?
int scrollBy = (subTextPos[1]+subTextHt) - rMyView.bottom + 10; // add a small bottom margin
mMeasurementViewScrollView.smoothScrollBy(0, scrollBy); // Scroll to subtext
}
}
链接地址: http://www.djcxy.com/p/93029.html
上一篇: Keyboard placement obscures view below EditText would like to keep visible