Edittext становится сжатым в BottomSheetDialogFragment

У меня есть BottomSheetDialogFragment, в котором простой файл макета с текстом редактирования внизу и просмотром recyclerview вверху, когда пользователь нажимает на текст редактирования и открывает программную клавиатуру и пишет несколько строк в тексте редактирования и пытается прокручивать его во время прокрутки если я нажму на любую строку, edittext сжимается, а также BottomSheetDialogFragment дергается, как будто он рендерит себя.

Вот мой код

layout_file:

<RelativeLayout
   android:id="@+id/layout"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@color/background"
   android:orientation="vertical"
   app:behavior_hideable="true"
   app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
   <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipeRefreshLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/etPostShare">
        <android.support.v7.widget.RecyclerView
             android:id="@+id/rvNewMessage"
             android:layout_width="match_parent"
             android:layout_height="match_parent"/>

   </android.support.v4.widget.SwipeRefreshLayout>
   <EditText
        android:id="@+id/etPostShare"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="1dp"
        android:background="@null"
        android:gravity="center|left"
        android:hint="Aa"
        android:inputType="textCapSentences|textMultiLine"
        android:isScrollContainer="true"
        android:maxHeight="60dp"
        android:maxLength="@integer/send_chat_txt_limit"
        android:maxLines="4"
        android:paddingLeft="18.4dp"
        android:paddingBottom="10dp"
        android:textSize="14.6sp" />

   </RelativeLayout>

Здесь я приложил изображения, а также ссылку на видео моей проблемы:

введите здесь описание изображения

https://drive.google.com/file/d/1bADuzDQoWep8XPMQ4ypKCWJyD32Gtfwp/view?usp=sharing


person Asad Mukhtar    schedule 23.04.2019    source источник
comment
Пожалуйста, попробуйте сделать так, чтобы ваш переработчик просматривал содержимое обтекания по высоте   -  person Abhishek Bhardwaj    schedule 23.04.2019
comment
дайте мне знать, это помогает вам или нет.   -  person Abhishek Bhardwaj    schedule 23.04.2019
comment
Это не работает @AbhishekBhardwaj   -  person Asad Mukhtar    schedule 23.04.2019
comment
swiperefreshlayout и recylerview должны иметь свойство wrap_content для высоты   -  person Jileshl    schedule 23.04.2019
comment
Это не работает, потому что эта кнопка должна отображаться внизу, а просмотр recyclerview должен быть сверху кнопки @Jileshl   -  person Asad Mukhtar    schedule 23.04.2019


Ответы (2)


Это работает в предварительном просмотре

 <RelativeLayout
            android:id="@+id/layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/holo_red_light"
            android:orientation="vertical"
            app:behavior_hideable="true"
            app:layout_behavior="android.support.design.widget.BottomSheetBehavior">

            <android.support.v4.widget.SwipeRefreshLayout
                android:id="@+id/swipeRefreshLayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/rvNewMessage"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"/>

            </android.support.v4.widget.SwipeRefreshLayout>

            <EditText
                android:id="@+id/etPostShare"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="1dp"
                android:background="@null"
                android:gravity="center|left"
                android:layout_alignParentBottom="true"
                android:hint="Aa\naa"
                android:inputType="textCapSentences|textMultiLine"
                android:isScrollContainer="true"
                android:maxHeight="60dp"
                android:maxLength="500"
                android:maxLines="4"
                android:paddingLeft="18.4dp"
                android:paddingBottom="10dp"
                android:textSize="14.6sp" />

        </RelativeLayout>
person Jileshl    schedule 23.04.2019
comment
Я попробовал ваше решение, но оно снова сжимается при прокрутке текста редактирования, а затем пользователь нажимает на редактирование любого конкретного символа в тексте редактирования. - person Asad Mukhtar; 24.04.2019
comment
Тот же самый XML работает для меня; Я вижу Edittext, плавающий над Recyclerview, максимум 4 строки @AsadMukhtar - person Jileshl; 25.04.2019
comment
Я знаю это выше, но я думаю, что вы не внимательно прочитали вопрос из-за того, что диалоговое окно нижнего листа сжимает текст редактирования. - person Asad Mukhtar; 27.04.2019
comment
Понятно; вышеприведенное решение я попытался запустить в своем проекте с поведением макета как поведением нижнего листа, и оно не сжимает текст редактирования; Протестировано на Android 6; Причина, по которой это работает, заключается в том, что; SwipeRefreshLayout не зависит от Edittext для своей позиции (ваш XML говорит, что ** android:layout_above=@+id/etPostShare Хотя в приведенном выше решении используется конфигурация относительного макета, чтобы плавать внизу - person Jileshl; 30.04.2019

У меня точно такая же проблема. Надеюсь, работает :)

стиль.xml

<style name="DialogStyle" parent="Theme.Design.Light.BottomSheetDialog">
    <item name="android:windowIsFloating">false</item> 
    <item name="android:windowSoftInputMode">adjustResize</item>
</style>

в вашем BottomSheetDialogFragment

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setStyle(DialogFragment.STYLE_NORMAL, R.style.DialogStyle)
}

в вашем макете

<androidx.core.widget.NestedScrollView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:gravity="bottom"
   android:orientation="vertical">

           .... your content with EditText



  </androidx.core.widget.NestedScrollView>
person Soo Chun Jung    schedule 22.10.2019