[英]Soft Keyboard overlaps Edit text field. Tried all the generic solutions
我已經嘗試了所有解決方案,即在 manifest.xml 中添加 adjustPan 和adjustResize 添加fitsSystem window true nd 所有軟鍵盤仍然重疊 這是我的代碼以獲得更好的上下文。
Xml 用於回收站視圖中的項目
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="0dp"
android:layout_marginBottom="6dp"
android:fitsSystemWindows="true"
>
<LinearLayout
android:id="@+id/layout_question"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="1"
android:fitsSystemWindows="true">
<TextView
android:id="@+id/question_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:padding="@dimen/dimen_10_dp"
android:paddingLeft="@dimen/dimen_5_dp"
android:layout_marginEnd="@dimen/dimen_5_dp"
tools:text="Q1)"
android:layout_marginStart="@dimen/dimen_5_dp"
android:textColor="#000000"
android:fontFamily="@font/work_sans_semibold"
android:textSize="17sp"
/>
<TextView
android:id="@+id/tv_question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen_5_dp"
android:layout_marginEnd="@dimen/dimen_5_dp"
android:layout_weight="0.4"
android:lineSpacingExtra="9dp"
android:padding="5dp"
android:paddingLeft="@dimen/dimen_5_dp"
android:text="@{questionName}"
android:textColor="#000000"
android:fontFamily="@font/work_sans_light"
android:textSize="22sp"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="9dp"
android:layout_marginTop="5dp"
android:orientation="horizontal"
app:visibleGone="@{isSubjectiveMarks}">
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="150dp"
android:layout_height="60dp"
android:layout_marginStart="30dp"
android:background="@drawable/bg_border_edittext"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<EditText
android:id="@+id/et_marks"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dimen_5_dp"
android:layout_marginEnd="@dimen/dimen_5_dp"
android:background="@drawable/bg_border_edittext"
android:fontFamily="sans-serif"
android:gravity="center"
android:imeOptions="actionDone"
android:inputType="numberDecimal"
android:maxLength="4"
android:overScrollMode="always"
android:padding="3dp"
android:textColor="#000"
android:textSize="29sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_total_marks"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginEnd="24dp"
android:fontFamily="@font/work_sans"
android:gravity="end|right"
android:padding="@dimen/dimen_10_dp"
android:text="@{`Out of ` + totalMarks}"
android:textColor="#4D89EB"
android:textSize="17sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:visibleGone="@{isSubjectiveMarks}"
tools:text="Outof 10" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/subjective_hint_text"
android:orientation="vertical"
app:visibleGone="@{isSubjective}">
<EditText
android:id="@+id/et_question"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_marginStart="@dimen/dimen_15_dp"
android:layout_marginEnd="@dimen/dimen_15_dp"
android:enabled="@{isViewMode}"
android:gravity="top|start"
android:imeOptions="actionSend|flagNoEnterAction"
android:inputType="textMultiLine"
android:maxLength="3000"
android:background="@drawable/desc_answer_bg"
android:fontFamily="@font/work_sans"
android:textColor="#202124"
android:textSize="21sp"
android:overScrollMode="always"
android:padding="10dp"
android:scrollbarStyle="insideInset"
android:scrollbars="vertical"
android:singleLine="false"
android:text="@={subjectiveAnswerText}"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
</com.google.android.material.textfield.TextInputLayout>
<RadioGroup
android:id="@+id/rg_answer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dimen_5_dp"
android:paddingTop="0dp"
android:layout_marginTop="0dp"
android:clickable="@{isViewMode}"
app:listToRadioGroup="@{optionDataWithAnswer}"
app:visibleGone="@{isObjective}"
/>
<LinearLayout
android:id="@+id/ll_cb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dimen_5_dp"
android:orientation="vertical"
android:paddingTop="10dp"
app:visibleGone="@{isMultiSelect}" />
<EditText
android:id="@+id/et_sub_obj"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dimen_5_dp"
android:fontFamily="sans-serif"
android:gravity="left"
android:imeOptions="actionDone"
android:inputType="text"
android:maxLength="3000"
android:overScrollMode="always"
android:padding="5dp"
app:visibleGone="@{isSubjectiveObjectiveTrueOption}"
tools:text="enter text here.." />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/objective_remarks_ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
app:visibleGone="@{isObjectiveWithRemarks}"
>
<RadioGroup
android:id="@+id/rg_objective_with_remarks"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dimen_5_dp"
android:clickable="@{isViewMode}"
android:paddingTop="0dp"
android:layout_marginTop="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:listToRadioGroup="@{optionDataWithAnswer}" />
<Switch
android:id="@+id/toggle_objective_remarks_textbox"
android:layout_width="0dp"
android:paddingTop="2dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/add_remarks"
android:paddingEnd="@dimen/dimen_10_dp"
android:paddingStart="@dimen/dimen_10_dp"
android:textSize="17sp"
android:fontFamily="@font/work_sans"
android:switchPadding="@dimen/dimen_15_dp"
android:gravity="end"
android:textOn="@string/on"
android:textOff="@string/off"
android:layout_marginTop="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rg_objective_with_remarks"
/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbarStyle="outsideInset"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toggle_objective_remarks_textbox"
>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/objective_remarks_field_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="@string/enter_remarks"
app:counterMaxLength="200"
app:counterEnabled="true"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toggle_objective_remarks_textbox">
<EditText
android:id="@+id/objective_remarks_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen_15_dp"
android:layout_marginEnd="@dimen/dimen_15_dp"
android:minHeight="100dp"
android:minLines="3"
android:autofillHints="Enter Remarks"
android:background="@drawable/desc_answer_bg"
android:enabled="@{isViewMode}"
android:fontFamily="@font/work_sans"
android:gravity="top|start"
android:imeOptions="actionDone"
android:inputType="textMultiLine|textShortMessage"
android:maxLength="200"
android:overScrollMode="always"
android:padding="10dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#202124"
android:textSize="21sp" />
</com.google.android.material.textfield.TextInputLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
app:visibleGone="@{isMultiSelectWithRemarks}"
>
<LinearLayout
android:id="@+id/layout_multiselect_remarks"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dimen_5_dp"
android:orientation="vertical"
android:paddingTop="10dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Switch
android:id="@+id/toggle_multiselect_remarks_textbox"
android:layout_width="0dp"
android:paddingTop="2dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/add_remarks"
android:textSize="17sp"
android:fontFamily="@font/work_sans"
android:switchPadding="@dimen/dimen_15_dp"
android:gravity="end"
android:paddingEnd="@dimen/dimen_10_dp"
android:paddingStart="@dimen/dimen_10_dp"
android:textOn="@string/on"
android:textOff="@string/off"
android:layout_marginTop="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/layout_multiselect_remarks"
/>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/multiselect_remarks_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/enter_remarks"
app:counterEnabled="true"
app:counterMaxLength="200"
android:visibility="gone"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toggle_multiselect_remarks_textbox"
>
<EditText
android:id="@+id/multiselect_remarks_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen_15_dp"
android:layout_marginEnd="@dimen/dimen_15_dp"
android:padding="10dp"
android:minHeight="100dp"
android:minLines="3"
android:background="@drawable/desc_answer_bg"
android:enabled="@{isViewMode}"
android:overScrollMode="always"
android:fontFamily="@font/work_sans"
android:gravity="top|start"
android:imeOptions="actionDone"
android:inputType="textMultiLine|textShortMessage"
android:textAppearance="?android:attr/textAppearanceMedium"
android:maxLength="200"
android:textColor="#202124"
android:textSize="21sp"
android:autofillHints="Enter Remarks" />
</com.google.android.material.textfield.TextInputLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/short_answer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dimen_10_dp"
android:hint="@string/enter_short_answer"
android:orientation="vertical"
android:textColor="#000"
app:visibleGone="@{isShortAnswer}"
>
<EditText
android:id="@+id/short_answer_et_question"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginStart="@dimen/dimen_15_dp"
android:layout_marginEnd="@dimen/dimen_15_dp"
android:enabled="@{isViewMode}"
android:gravity="top|start"
android:imeOptions="actionDone"
android:inputType="text"
android:maxLength="1000"
android:background="@drawable/desc_answer_bg"
android:fontFamily="@font/work_sans"
android:textColor="#202124"
android:textSize="21sp"
android:overScrollMode="always"
android:padding="@dimen/dimen_10_dp"
android:scrollbarStyle="insideInset"
android:scrollbars="vertical"
android:singleLine="false"
android:text="@={shortAnswerText}"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
</com.google.android.material.textfield.TextInputLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="@dimen/dimen_5_dp"
app:visibleGone="@{isDate}"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="10dp"
android:paddingVertical="20dp"
android:layout_marginHorizontal="@dimen/dimen_15_dp"
android:orientation="horizontal"
android:background="@drawable/calendar_bg"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/date_text_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="28dp"
android:hint="@string/choose_a_date"
android:fontFamily="@font/work_sans"
android:text="@={DateText}"
android:textSize="21sp"
android:textColor="#000"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/calendar_image"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/calendar_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:layout_marginStart="@dimen/dimen_15_dp"
android:layout_marginEnd="2dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_baseline_calendar_today_24"
android:focusable="true" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="8dp"
android:layout_marginTop="5dp"
android:orientation="horizontal"
app:visibleGone="@{isMarksWithRemarks}">
<LinearLayout
android:id="@+id/marks_with_remarks_linearLayout"
android:layout_width="150dp"
android:layout_height="60dp"
android:layout_marginStart="34dp"
android:background="@drawable/bg_border_edittext"
android:gravity="center"
android:textColor="#000"
android:orientation="vertical"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<EditText
android:id="@+id/et_marks_remarks"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dimen_5_dp"
android:layout_marginEnd="@dimen/dimen_5_dp"
android:background="@drawable/bg_border_edittext"
android:fontFamily="sans-serif"
android:gravity="center"
android:imeOptions="actionDone"
android:inputType="numberDecimal"
android:maxLength="4"
android:overScrollMode="always"
android:padding="3dp"
android:textColor="#000"
android:textSize="29sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_total_marks_remarks"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginEnd="24dp"
android:layout_marginBottom="18dp"
android:fontFamily="@font/work_sans"
android:gravity="end|right"
android:padding="@dimen/dimen_10_dp"
android:text="@{`Out of ` + totalMarks}"
android:textColor="#4D89EB"
android:textSize="17sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/marks_text_input_layout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:visibleGone="@{isMarksWithRemarks}"
tools:text="Outof 10" />
<Switch
android:id="@+id/toggle_marks_remarks_textbox"
android:layout_width="0dp"
android:paddingTop="2dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/add_remarks"
android:textSize="17sp"
android:paddingEnd="@dimen/dimen_10_dp"
android:paddingStart="@dimen/dimen_10_dp"
android:gravity="end"
android:fontFamily="@font/work_sans"
android:switchPadding="@dimen/dimen_15_dp"
android:textOn="@string/on"
android:textOff="@string/off"
android:layout_marginTop="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/marks_with_remarks_linearLayout"
</LinearLayout>
</androidx.cardview.widget.CardView>
片段 class
Java
Objects.requireNonNull(getActivity()).getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
還在清單文件中添加了屬性
<activity android:name=".view.AssessmentActivity"
android:theme="@style/AppTheme.NoActionBar"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan"
/>
在這里,我有兩個解決方案。 他們可能對你有幫助。
android:windowSoftInputMode="adjustResize|stateHidden"
或者
只需將其添加到父布局中:
android:fitsSystemWindows="true"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.