我有一个Fragment
,Fragment
中有一个ScrollView
。
<ScrollView
android:id="@+id/scroll_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/appbar">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.tatar.mobile.widget.CardSelectionView
android:id="@+id/card_selection_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
app:accountRightTextView1="@string/available"
app:accountTitleTextView="@string/from"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/line_text_view"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="8dp"
android:background="@color/gray.light"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/card_selection_view" />
<Spinner
android:id="@+id/type_spinner"
style="@style/spinner"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/line_text_view" />
<Spinner
android:id="@+id/company_spinner"
style="@style/spinner"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/type_spinner" />
<LinearLayout
android:id="@+id/dynamic_form_container"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/company_spinner" />
<Spinner
android:id="@+id/installment_spinner"
style="@style/spinner"
android:layout_marginTop="8dp"
android:visibility="invisible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/dynamic_form_container" />
<Button
android:id="@+id/continue_button"
style="@style/action_button"
android:layout_marginTop="16dp"
android:text="@string/continue_button_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/installment_spinner" />
</android.support.constraint.ConstraintLayout>
</ScrollView>
该ScrollView
中 ID 为dynamic_form_container
的LinearLayout
包含表单输入字段,这些字段将通过 Web 服务调用填充,并且最多可能有 6-7 个输入字段,具体取决于发送到 Web 服务的参数。所以,表格的高度有点高,这就是问题开始的地方。当我尝试在输入字段中输入内容时,会出现软键盘,而其他一些输入字段保留在软键盘下方,无法滚动。
我试图为了Activity
那Fragment
而表现出来,但没有帮助。
android:windowSoftInputMode="adjustResize|stateHidden"
我希望能够在软键盘出现时滚动。我该如何解决这个问题?
任何帮助将不胜感激
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
onCreateView
方法对我有用。
我在这里找到了这个问题的解决方案,请将此类包含在您的项目中。 并在创建包含片段的活动中添加以下行。
new KeyboardUtil(this,findViewById(R.id.fragment));
你好请参考下面的代码
这对我来说是工作..
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.constraint.ConstraintLayout>
</ScrollView>
安卓清单.xml
<activity
android:name=".ui.activities.Activity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar" />