Android: FitsSystemWindows не работает на фрагмент - PullRequest
0 голосов
/ 26 ноября 2018

Изображение enter image description here

Макет фрагмента

<?xml version="1.0" encoding="utf-8"?>
    <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:fitsSystemWindows="true"
        android:layout_height="match_parent"
        android:background="@drawable/fragments_background"
        tools:context=".ui.fragments.BillPaymentFragment">

        <LinearLayout
            android:id="@+id/wallet"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:background="@color/wolletColor"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="@dimen/dimen_50dp"
                android:layout_height="@dimen/dimen_50dp"
                android:layout_gravity="center_vertical"
                android:layout_marginStart="@dimen/dimen_20dp"
                android:background="@drawable/wallet" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:layout_marginStart="@dimen/dimen_4dp"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/wallet_remains"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingTop="@dimen/dimen_10dp"
                    android:text="3450.00 LKR"
                    android:textColor="@color/colorPrimary"
                    android:textSize="@dimen/dimen_16dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/wallet_remains"
                    android:textColor="@color/gray"
                    android:textSize="@dimen/dimen_12dp" />
            </LinearLayout>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <LinearLayout

                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:orientation="horizontal"
                android:paddingTop="@dimen/dimen_60dp">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:orientation="vertical"
                    android:padding="@dimen/dimen_20dp">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_marginBottom="@dimen/dimen_10dp"
                        android:text="Mobile No"
                        android:textColor="@color/borderAndFont"
                        android:textSize="@dimen/dimen_20dp"></TextView>

                    <EditText
                        android:id="@+id/reload_mobile_number"
                        android:layout_width="match_parent"
                        android:layout_height="50dp"
                        android:layout_marginBottom="@dimen/dimen_20dp"
                        android:background="@drawable/rounded_edit_text"
                        android:gravity="center|center_vertical"
                        android:hint="@string/mobile_number"
                        android:inputType="phone"
                        android:textColor="@color/borderAndFont"
                        android:textSize="14sp" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_marginBottom="@dimen/dimen_10dp"
                        android:text="@string/amount"
                        android:textColor="@color/borderAndFont"
                        android:textSize="@dimen/dimen_20dp"></TextView>

                    <EditText
                        android:id="@+id/reload_amount"
                        android:layout_width="match_parent"
                        android:layout_height="50dp"
                        android:background="@drawable/rounded_edit_text"
                        android:gravity="center|center_vertical"
                        android:hint="@string/amount_hint"
                        android:inputType="number"
                        android:textColor="@color/borderAndFont"
                        android:textSize="14sp" />

                </LinearLayout>


            </LinearLayout>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_alignParentBottom="true"
            android:layout_marginEnd="@dimen/dimen_20dp"
            android:layout_marginStart="@dimen/dimen_20dp"
            android:gravity="bottom"
            android:orientation="vertical"
            app:layout_constraintBottom_toBottomOf="parent">

            <LinearLayout

                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <Button
                    android:id="@+id/cancelBtn"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="@dimen/dimen_10dp"
                    android:layout_marginEnd="@dimen/dimen_6dp"
                    android:layout_marginTop="@dimen/dimen_10dp"
                    android:layout_weight="1"
                    android:background="@drawable/secondary_button"
                    android:text="Cancel"
                    android:textColor="@color/white" />

                <Button
                    android:id="@+id/btn_proceed"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="@dimen/dimen_10dp"
                    android:layout_marginStart="@dimen/dimen_6dp"
                    android:layout_marginTop="@dimen/dimen_10dp"
                    android:layout_weight="1"
                    android:background="@drawable/primary_button"
                    android:text="Proceed"
                    android:textColor="@color/white" />
            </LinearLayout>
        </LinearLayout>
    </RelativeLayout>

AndroidManifest.xml

  <activity
            android:windowSoftInputMode="adjustResize"
            android:name=".ui.main.MainActivity"
            android:screenOrientation="sensorPortrait"
            android:theme="@style/AppTheme.NoActionBar"></activity>

У меня есть фрагмент перезагрузки вызова фрагмента, который был прикреплен выше.Родительским действием является MainActivity, здесь я прикрепил код файла манифеста, который связан с активностью. Когда я нажимаю нижние кнопки edittext, они закрывают поля edittext с помощью клавиатуры.Здесь я добавил свойство android: fitsSystemWindows в файл манифеста.Что-то не хватает в моем коде?

1 Ответ

0 голосов
/ 26 ноября 2018

Добавление android:fitsSystemWindows="true и android:windowSoftInputMode="adjustResize" к основному действию не будет работать.

Вы должны добавить android:fitsSystemWindows="true к родительскому макету этого конкретного Фрагмента xml файла.И в java классе Fragment в вашем onCreateView вы должны добавить windowSoftInputMode следующим образом.

getActivity()
            .getWindow()
            .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

Надеюсь, это работает для вас.Дайте мне знать, если у вас возникнут проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...