Сделать весь макет, содержащий ListView, прокручиваемым

У меня есть LinearLayout, содержащий ListView. Когда ListView прокручивается, LinearLayout тоже должен прокручиваться.

Но теперь, когда прокручивается ListView, RelativeLayout выше ListView, а не прокручиваемый. Вместо этого они всегда оказываются на высоте! Я попытался добавить ScrollView в LinearLayout, но получил java.lang.IllegalStateException: ScrollView can host only one direct child

Вот что я пробовал

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout
        xmlns:android = "http://schemas.android.com/apk/res/android"
        android:layout_height = "wrap_content" android:layout_width = "wrap_content"
        android:orientation = "vertical"
        xmlns:app = "http://schemas.android.com/apk/res-auto">

    <RelativeLayout
            style = "?android:attr/buttonStyleSmall"
            android:clickable = "true"
            android:id = "@+id/relativeLayout1"
            android:background = "@drawable/boarder_layout"
            android:layout_marginLeft = "10dp"
            android:layout_marginTop = "10dp"
            android:layout_marginRight = "10dp"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content">

        <TextView
                android:layout_marginTop = "12dp"
                android:textSize = "15sp"
                android:textColor = "@color/darkGreen"
                android:layout_marginLeft = "8dp"
                android:id = "@+id/editTextDate"
                android:background = "@android:color/transparent"
                android:layout_toRightOf = "@+id/imgProfilePicture"
                android:text = "Post a new update"
                android:padding = "10dp"
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"/>

        <ImageView
                android:padding = "8dp"
                android:src = "@drawable/images"
                android:layout_marginLeft = "10dp"
                android:layout_marginTop = "5dp"
                android:layout_marginBottom = "5dp"
                android:id = "@+id/imgProfilePicture"
                android:layout_width = "60dp"
                android:layout_height = "60dp"
                android:layout_gravity = "center"/>
    </RelativeLayout>

    <LinearLayout android:layout_width = "match_parent" android:layout_height = "wrap_content"
                  android:layout_marginTop = "10dp"
                  android:orientation = "horizontal">

        <RelativeLayout
                style = "?android:attr/buttonStyleSmall"
                android:id = "@+id/relativeLayout2"
                android:clickable = "true"
                android:layout_weight = "0.5"
                android:background = "@drawable/boarder_layout"
                android:layout_marginLeft = "10dp"
                android:layout_width = "0dp"
                android:layout_height = "wrap_content">

            <TextView
                    android:textColor = "@color/darkGreen"
                    android:layout_marginTop = "10dp"
                    android:layout_marginLeft = "8dp"
                    android:id = "@+id/txtView1"
                    android:background = "@android:color/transparent"
                    android:layout_toRightOf = "@+id/imgFindSomething"
                    android:text = "I need something"
                    android:layout_width = "wrap_content"
                    android:layout_height = "wrap_content"/>

            <ImageView
                    android:tint = "@color/limegreen"
                    android:layout_marginLeft = "10dp"
                    android:layout_marginTop = "5dp"
                    android:layout_marginBottom = "5dp"
                    android:src = "@drawable/find_something"
                    android:id = "@+id/imgFindSomething"
                    android:layout_width = "25dp"
                    android:layout_height = "25dp"
                    android:layout_gravity = "center"/>

        </RelativeLayout>

        <RelativeLayout
                style = "?android:attr/buttonStyleSmall"
                android:id = "@+id/relativeLayout3"
                android:clickable = "true"
                android:layout_marginRight = "10dp"
                android:layout_weight = "0.5"
                android:layout_marginLeft = "10dp"
                android:background = "@drawable/boarder_layout"
                android:layout_width = "0dp"
                android:layout_height = "wrap_content">

            <TextView
                    android:textColor = "@color/crimson"
                    android:layout_marginTop = "10dp"
                    android:layout_marginLeft = "8dp"
                    android:id = "@+id/txtView2"
                    android:layout_width = "wrap_content"
                    android:background = "@android:color/transparent"
                    android:layout_toRightOf = "@+id/imgInvite"
                    android:text = "Invite neighbours"
                    android:layout_height = "wrap_content"/>

            <ImageView
                    android:tint = "@color/limegreen"
                    android:layout_marginLeft = "10dp"
                    android:layout_marginTop = "5dp"
                    android:layout_marginBottom = "5dp"
                    android:src = "@drawable/add_neighbours"
                    android:id = "@+id/imgInvite"
                    android:layout_width = "25dp"
                    android:layout_height = "25dp"
                    android:layout_gravity = "center"/>
        </RelativeLayout>
    </LinearLayout>

    <ListView android:layout_width = "match_parent" android:layout_height = "match_parent"
              android:layout_marginLeft = "10dp"
              android:id = "@+id/listView">
    </ListView>

</LinearLayout>

ваш вопрос не прояснен. Просмотр списка по умолчанию прокручивается.

Anisur Rahman Tonu 26.10.2018 17:02

@AnisurRahmanTonu Да, но я хочу, чтобы relativeLayout говорил о прокрутке listView с listView вместо того, чтобы всегда показывать сверху.

John Joe 26.10.2018 17:04

вы имеете в виду, что хотите скрыть верхний относительный макет, когда список прокручивается вверх?

Anisur Rahman Tonu 26.10.2018 17:10

@AnisurRahmanTonu именно так.

John Joe 26.10.2018 17:11

кто угодно.........?

John Joe 26.10.2018 18:39

Эта ссылка может помочь: stackoverflow.com/questions/52632445/…

i_A_mok 27.10.2018 05:24
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
6
68
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам нужно использовать NestedScrollView так:

<android.support.v4.widget.NestedScrollView
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:fillViewport = "true"
    android:overScrollMode = "never"
    android:clipToPadding = "false">
        <LinearLayout
            android:layout_width = "match_parent"
            android:layout_height = "match_parent"
            android:orientation = "vertical">

            <RelativeLayout
                style = "?android:attr/buttonStyleSmall"
                android:clickable = "true"
                android:id = "@+id/relativeLayout1"
                android:background = "@drawable/boarder_layout"
                android:layout_marginLeft = "10dp"
                android:layout_marginTop = "10dp"
                android:layout_marginRight = "10dp"
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content">

                <TextView
                    android:layout_marginTop = "12dp"
                    android:textSize = "15sp"
            android:textColor = "@color/darkGreen"
            android:layout_marginLeft = "8dp"
            android:id = "@+id/editTextDate"
            android:background = "@android:color/transparent"
            android:layout_toRightOf = "@+id/imgProfilePicture"
            android:text = "Post a new update"
            android:padding = "10dp"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"/>

    <ImageView
            android:padding = "8dp"
            android:src = "@drawable/images"
            android:layout_marginLeft = "10dp"
            android:layout_marginTop = "5dp"
            android:layout_marginBottom = "5dp"
            android:id = "@+id/imgProfilePicture"
            android:layout_width = "60dp"
            android:layout_height = "60dp"
            android:layout_gravity = "center"/>
</RelativeLayout>

<LinearLayout 
              android:layout_width = "match_parent" 
              android:layout_height = "wrap_content"
              android:layout_marginTop = "10dp"
              android:orientation = "horizontal">

    <RelativeLayout
            style = "?android:attr/buttonStyleSmall"
            android:id = "@+id/relativeLayout2"
            android:clickable = "true"
            android:layout_weight = "0.5"
            android:background = "@drawable/boarder_layout"
            android:layout_marginLeft = "10dp"
            android:layout_width = "0dp"
            android:layout_height = "wrap_content">

        <TextView
                android:textColor = "@color/darkGreen"
                android:layout_marginTop = "10dp"
                android:layout_marginLeft = "8dp"
                android:id = "@+id/txtView1"
                android:background = "@android:color/transparent"
                android:layout_toRightOf = "@+id/imgFindSomething"
                android:text = "I need something"
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"/>

        <ImageView
                android:tint = "@color/limegreen"
                android:layout_marginLeft = "10dp"
                android:layout_marginTop = "5dp"
                android:layout_marginBottom = "5dp"
                android:src = "@drawable/find_something"
                android:id = "@+id/imgFindSomething"
                android:layout_width = "25dp"
                android:layout_height = "25dp"
                android:layout_gravity = "center"/>

    </RelativeLayout>

    <RelativeLayout
            style = "?android:attr/buttonStyleSmall"
            android:id = "@+id/relativeLayout3"
            android:clickable = "true"
            android:layout_marginRight = "10dp"
            android:layout_weight = "0.5"
            android:layout_marginLeft = "10dp"
            android:background = "@drawable/boarder_layout"
            android:layout_width = "0dp"
            android:layout_height = "wrap_content">

        <TextView
                android:textColor = "@color/crimson"
                android:layout_marginTop = "10dp"
                android:layout_marginLeft = "8dp"
                android:id = "@+id/txtView2"
                android:layout_width = "wrap_content"
                android:background = "@android:color/transparent"
                android:layout_toRightOf = "@+id/imgInvite"
                android:text = "Invite neighbours"
                android:layout_height = "wrap_content"/>

        <ImageView
                android:tint = "@color/limegreen"
                android:layout_marginLeft = "10dp"
                android:layout_marginTop = "5dp"
                android:layout_marginBottom = "5dp"
                android:src = "@drawable/add_neighbours"
                android:id = "@+id/imgInvite"
                android:layout_width = "25dp"
                android:layout_height = "25dp"
                android:layout_gravity = "center"/>
    </RelativeLayout>
</LinearLayout>

    <ListView 
        android:layout_width = "match_parent" 
        android:layout_height = "match_parent"
        android:layout_marginLeft = "10dp"
        android:id = "@+id/listView">
    </ListView>


    </LinearLayout>
</android.support.v4.widget.NestedScrollView>

Я также предлагаю заменить ваш ListView на RecyclerView для повышения производительности.

Строка двоичного XML-файла №2: Ошибка при раздувании класса androidx.core.widget.NestedScrollView

John Joe 26.10.2018 17:29

Вы используете androidx или все еще используете библиотеки поддержки? Также я пропустил родительский linearlayout, поэтому попробуйте снова скопировать и вставить

MichaelStoddart 26.10.2018 17:30

Теперь все не может прокручиваться, включите listView

John Joe 26.10.2018 17:35

Установите высоту списка, чтобы обернуть контент @JohnJoe

MichaelStoddart 26.10.2018 17:36

Используйте этот код.

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:app = "http://schemas.android.com/apk/res-auto"
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:orientation = "vertical">

    <ScrollView xmlns:android = "http://schemas.android.com/apk/res/android"
        android:layout_width = "fill_parent"
        android:layout_height = "fill_parent"
        android:background = "@color/primary"
        android:fitsSystemWindows = "true">

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

            <RelativeLayout
                android:id = "@+id/relativeLayout1"
                style = "?android:attr/buttonStyleSmall"
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:layout_marginLeft = "10dp"
                android:layout_marginTop = "10dp"
                android:layout_marginRight = "10dp"
                android:background = "@drawable/boarder_layout"
                android:clickable = "true">

                <TextView
                    android:id = "@+id/editTextDate"
                    android:layout_width = "match_parent"
                    android:layout_height = "wrap_content"
                    android:layout_marginLeft = "8dp"
                    android:layout_marginTop = "12dp"
                    android:layout_toRightOf = "@+id/imgProfilePicture"
                    android:background = "@android:color/transparent"
                    android:padding = "10dp"
                    android:text = "Post a new update"
                    android:textColor = "@color/darkGreen"
                    android:textSize = "15sp" />

                <ImageView
                    android:id = "@+id/imgProfilePicture"
                    android:layout_width = "60dp"
                    android:layout_height = "60dp"
                    android:layout_gravity = "center"
                    android:layout_marginLeft = "10dp"
                    android:layout_marginTop = "5dp"
                    android:layout_marginBottom = "5dp"
                    android:padding = "8dp"
                    android:src = "@drawable/images" />
            </RelativeLayout>

            <LinearLayout
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                android:layout_marginTop = "10dp"
                android:orientation = "horizontal">

                <RelativeLayout
                    android:id = "@+id/relativeLayout2"
                    style = "?android:attr/buttonStyleSmall"
                    android:layout_width = "0dp"
                    android:layout_height = "wrap_content"
                    android:layout_marginLeft = "10dp"
                    android:layout_weight = "0.5"
                    android:background = "@drawable/boarder_layout"
                    android:clickable = "true">

                    <TextView
                        android:id = "@+id/txtView1"
                        android:layout_width = "wrap_content"
                        android:layout_height = "wrap_content"
                        android:layout_marginLeft = "8dp"
                        android:layout_marginTop = "10dp"
                        android:layout_toRightOf = "@+id/imgFindSomething"
                        android:background = "@android:color/transparent"
                        android:text = "I need something"
                        android:textColor = "@color/darkGreen" />

                    <ImageView
                        android:id = "@+id/imgFindSomething"
                        android:layout_width = "25dp"
                        android:layout_height = "25dp"
                        android:layout_gravity = "center"
                        android:layout_marginLeft = "10dp"
                        android:layout_marginTop = "5dp"
                        android:layout_marginBottom = "5dp"
                        android:src = "@drawable/find_something"
                        android:tint = "@color/limegreen" />

                </RelativeLayout>

                <RelativeLayout
                    android:id = "@+id/relativeLayout3"
                    style = "?android:attr/buttonStyleSmall"
                    android:layout_width = "0dp"
                    android:layout_height = "wrap_content"
                    android:layout_marginLeft = "10dp"
                    android:layout_marginRight = "10dp"
                    android:layout_weight = "0.5"
                    android:background = "@drawable/boarder_layout"
                    android:clickable = "true">

                    <TextView
                        android:id = "@+id/txtView2"
                        android:layout_width = "wrap_content"
                        android:layout_height = "wrap_content"
                        android:layout_marginLeft = "8dp"
                        android:layout_marginTop = "10dp"
                        android:layout_toRightOf = "@+id/imgInvite"
                        android:background = "@android:color/transparent"
                        android:text = "Invite neighbours"
                        android:textColor = "@color/crimson" />

                    <ImageView
                        android:id = "@+id/imgInvite"
                        android:layout_width = "25dp"
                        android:layout_height = "25dp"
                        android:layout_gravity = "center"
                        android:layout_marginLeft = "10dp"
                        android:layout_marginTop = "5dp"
                        android:layout_marginBottom = "5dp"
                        android:src = "@drawable/add_neighbours"
                        android:tint = "@color/limegreen" />
                </RelativeLayout>
            </LinearLayout>
        </LinearLayout>
    </ScrollView>

    <ListView
        android:id = "@+id/listView"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:layout_marginLeft = "10dp"></ListView>

</LinearLayout>

относительный макет о listView по-прежнему не прокручивается

John Joe 27.10.2018 14:04

затем сделайте этот прокрутку вашим основным родителем

user7903200 28.10.2018 06:25

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