簡體   English   中英

軟鍵盤與編輯文本字段重疊。 嘗試了所有通用解決方案

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM