Сколько дочерних элементов может содержать ScrollView

Ответ

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

Если нужно добавить несколько элементов, их следует обернуть в контейнер (например, LinearLayout или ConstraintLayout):

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

        <!-- Дочерние элементы -->
        <TextView ... />
        <Button ... />
        <ImageView ... />
    </LinearLayout>
</ScrollView>

Нарушение этого правила приведёт к ошибке или некорректному отображению.

Ответ 18+ 🔞

А, слушай, вот это реально классика, ёпта! Каждый второй на этом подгорает, как будто в первый раз видит. Ну блядь, ну представь себе: ScrollView — это как один здоровенный ящик, в который ты можешь засунуть кучу всего, но засунуть-то ты можешь только один этот ящик! Нельзя прийти и начать пихать в него сразу пять телевизоров, три холодильника и кота. Он с ума сойдет, упадёт и скажет "ёперный театр, я так не работаю!".

Вот смотри, в чём прикол. Он создан, чтобы прокручивать один контейнер. А уже внутри этого контейнера ты можешь устраивать что угодно: хоть десять текстов, двадцать кнопок и картинку с твоей мордой. Главное — оберни всё это в какой-нибудь LinearLayout или ConstraintLayout. Вот как это выглядит, чтобы не было пиздопроебибны:

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

        <!-- Дочерние элементы -->
        <TextView ... />
        <Button ... />
        <ImageView ... />
    </LinearLayout>
</ScrollView>

Видишь? Один LinearLayout — и всё, вопросов нет. А если попробуешь впихнуть второй элемент прямо в ScrollView, то получишь или ошибку, или такой интерфейс, что волосы дыбом встанут. Доверия ебать ноль к такому коду будет, потому что он просто сломается.

Запомни раз и навсегда: один ребёнок у ScrollView. Не два, не полтора — один. Всё остальное — уже внуки. Иначе будет тебе не хиросима, а настоящий нигерсраки в верстке. Сам от себя охуеешь, когда половина твоего экрана просто исчезнет.