我在ScrollView中有几个EditText
个。低于EditText
一个TextView
。当软键盘聚焦于EditText
时,我想滚动到上面提到的TextView
,所以我确定它也是可见的(它包含EditText
的一些信息。)
所以我在EditText
添加了一个焦点监听器,在那里我有这个代码:
svContainer.postDelayed(new Runnable() {
@Override
public void run() {
svContainer.smoothScrollTo(0 , tvInfo.getBottom());
}
}, 300);
但没有任何反应。 TextView
隐藏在键盘下方。
Logcat为我提供tvInfo.getBottom() == 717
编辑:如果我用smoothScrollTo()
更改svContainer.fullScroll(View.FOCUS_DOWN);
,那么它的滚动一直到底部!
编辑2:添加xml代码
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingPrefix"
android:id="@+id/sv_container"
android:fillViewport="false" android:background="@color/getstarted_blue_bg"
android:layout_width="match_parent" android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/ll_about_you_container"
android:orientation="vertical" android:layout_marginTop="@dimen/spacing_xlarge"
android:layout_width="match_parent" android:layout_height="wrap_content">
<TextView
android:text="@string/get_started_about_you" android:textColor="@color/white" android:textStyle="bold"
android:layout_marginLeft="@dimen/spacing_large" android:layout_marginRight="@dimen/spacing_large"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<EditText
android:id="@+id/et_industry"
android:maxLines="1" android:imeOptions="actionNext" android:inputType="textCapSentences"
android:nextFocusForward="@+id/et_profession"
android:layout_marginLeft="@dimen/spacing_large" android:layout_marginRight="@dimen/spacing_large"
android:layout_marginTop="@dimen/spacing_large" android:textColor="@color/white" android:textSize="@dimen/app_text_size_large"
android:layout_width="match_parent" android:layout_height="wrap_content" />
<EditText
android:id="@+id/et_profession"
android:nextFocusForward="@+id/et_company"
android:maxLines="1" android:imeOptions="actionNext" android:inputType="textCapSentences"
android:layout_marginLeft="@dimen/spacing_large" android:layout_marginRight="@dimen/spacing_large"
android:layout_marginTop="@dimen/spacing_large" android:textColor="@color/white" android:textSize="@dimen/app_text_size_large"
android:layout_width="match_parent" android:layout_height="wrap_content" />
<EditText
android:id="@+id/et_company"
android:hint="@string/get_started_company" android:textColorHint="@color/white"
android:maxLines="1" android:imeOptions="actionNext" android:inputType="textCapSentences"
android:layout_marginLeft="@dimen/spacing_large" android:layout_marginRight="@dimen/spacing_large"
android:layout_marginTop="@dimen/spacing_large" android:textColor="@color/white" android:textSize="@dimen/app_text_size_large"
android:layout_width="match_parent" android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_anchor"
android:layout_gravity="center"
android:text="AnchorView"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
答案 0 :(得分:0)
使用:
svContainer.post(new Runnable() {
@Override
public void run() {
svContainer.scrollTo(0, tvInfo.getBottom());
}
});
}
和使用: 在清单中的活动标签中:
android:windowSoftInputMode="stateHidden"