Вложенный прокрутку плохо прокручивается внутри другого вложенного прокрутки

У меня есть диалоговое окно нижнего листа с 2 nestedscrollview, внешний оборачивает весь вид, внутренний оборачивает один textview, у меня есть 2 проблемы:

1. внутренний может прокручиваться только вниз, как вы можете видеть на гифке:

Мне нужно сделать внутреннюю nestedscrollview прокручиваемой в обоих направлениях, а внешнюю nestedscrollview прокручиваемой при перетаскивании за пределы внутреннего, как я могу это сделать?

2. Мне нужно сделать внутренний nestedscrollview для переноса текста, пробовал с ограничениями, но не работает, wrap_content заставляет отображать весь textview, делая scrollview простым textview.

Как я могу это сделать?

Это мой XML-код:

<androidx.core.widget.NestedScrollView
    android:id="@+id/outer_scrollview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <ViewSwitcher
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <androidx.core.widget.NestedScrollView
                android:id="@+id/inner_scrollview"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:background="200dp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
                    android:textColor="@color/white"
                    android:textSize="25dp"
            </androidx.core.widget.NestedScrollView>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>

        </ViewSwitcher>

    </androidx.constraintlayout.widget.ConstraintLayout>

</androidx.core.widget.NestedScrollView>

Чтобы вложенная прокрутка работала в версиях Lollipop и выше, вы должны включить ее для дочернего представления прокрутки, добавив android:nestedScrollingEnabled="true" в его XML-декларацию или явным образом вызвав setNestedScrollingEnabled(true). Итак, в наборе TextView включите это свойство.

Aniruddh Parihar 28.11.2022 15:06
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Как включить TLS в gRPC-клиенте и сервере : 2
Как включить TLS в gRPC-клиенте и сервере : 2
Здравствуйте! 🙏🏻 Надеюсь, у вас все хорошо и добро пожаловать в мой блог.
Сортировка hashmap по значениям
Сортировка hashmap по значениям
На Leetcode я решал задачу с хэшмапой и подумал, что мне нужно отсортировать хэшмапу по значениям.
Принципы SOLID - лучшие практики
Принципы SOLID - лучшие практики
SOLID - это аббревиатура, обозначающая пять ключевых принципов проектирования: принцип единой ответственности, принцип "открыто-закрыто", принцип...
gRPC на Android с использованием TLS
gRPC на Android с использованием TLS
gRPC - это относительно новая концепция взаимодействия между клиентом и сервером, но не более.
1
1
102
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

проблема просто в том, что вы используете прокрутку внутри прокрутки, поэтому Я предлагаю вам сделать текст прокручиваемым другим способом, например, сделать его только для чтения, редактировать текст android:editable="false" или Edittext.setEnabled(false); и играть с цветами.

или

дать достаточно места для просмотра текста

или

настроить размер текста

или вы можете сфокусироваться, когда вы нажимаете на прокрутку, например

трюк с edittext может сработать, но мне нужно надежное решение с textview, я не могу поверить, что нет способа сделать это

C-Gian 22.11.2022 11:56
 ViewCompat.setNestedScrollingEnabled(listRecyclerView, false);

Вы можете попробовать это, чтобы решить проблему прокрутки.

listrecyclerview что такое?

C-Gian 27.11.2022 17:41

ваш recyclerView.

Saiful Sazib 27.11.2022 20:15

Я не использую там вид ресайклера, это диалоговое окно нижнего листа с двумя вложенными прокрутками внутри

C-Gian 27.11.2022 20:30
Ответ принят как подходящий

После некоторых исследований и разработок на моем конце я завершил XML-макет, он работает для меня.

На самом деле проблема заключалась в неправильном проектировании макета. Возьмите последние изменения снизу.

<androidx.core.widget.NestedScrollView
    android:id="@+id/outer_scrollview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <ViewSwitcher
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <androidx.core.widget.NestedScrollView
                android:id="@+id/inner_scrollview"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:background="200dp"
                android:nestedScrollingEnabled="true"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent">
                
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
                    android:textColor="@color/white"
                    android:textSize="25dp"></TextView>
                    
                </LinearLayout>    
                    
            </androidx.core.widget.NestedScrollView>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>

        </ViewSwitcher>

    </androidx.constraintlayout.widget.ConstraintLayout>

</androidx.core.widget.NestedScrollView>

Примените этот макет XML и дайте мне знать, если что-то потребуется больше.

Другие вопросы по теме