Обертывание двух ScrollView в LinearLayout - PullRequest
0 голосов
/ 03 августа 2020

Я изо всех сил пытаюсь найти решение одной из проблем класса Android Studio (Kotlin) от Google: как добавить другое изображение, которое прокручивается вниз с помощью первого ScrollView. Я создал LinearLayout, в котором есть два ScrollView. Первый ScrollView имеет большой объем текста, который отлично прокручивается вниз. Однако во втором ScrollView для изображения над текстом оно не прокручивается вместе с текстом.

Вот вид элемента Design Activity_main (зеленая полоса под звездочкой - ImageView1, находится во втором ScrollView): enter image description here

Here is the code for the ScrollViews in my activity_main:

        

Будем признательны за некоторые рекомендации.

1 Ответ

1 голос
/ 04 августа 2020

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

Как официальная документация ScrollView:

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

Итак, измените свой код как:

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

    <ScrollView
        android:id="@+id/bio_scroll2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

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

            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:srcCompat="@android:drawable/button_onoff_indicator_on" />

            <TextView
                android:id="@+id/bio_text"
                style="@style/NameStyle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:lineSpacingMultiplier="1.2"
                android:text="@string/bio" />

        </LinearLayout>

    </ScrollView>

</LinearLayout>

Кроме того, вы можете удалить root LinearLayout, если вы не хотите добавлять в него какое-либо другое представление, и это сделает ScrollView макетом root.

Кроме того, height as match_parent не работает в ScrollView и работает только как wrap_content или любой другой размер исправления, поэтому, если вы хотите, чтобы он занимал всю высоту своего родителя, вы должны используйте android:fillViewport="true" в теге ScrollView's, а высота его родительского элемента должна быть match_parent.

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