Утечка содержимого ScrollView из родительского представления в Android

Приведенный ниже файл макета должен дать вам представление о том, что мне нужно содержимое прокрутки внутри RelativeLayout под TextView, но содержимое ScrollView выходит из RelativeLayout, чтобы быть скрытым за TextView. Я не понимаю, как это происходит. В RelativeLayout внутри ScrollView я добавляю объект LinearLayoutCompat программно, и к этому объекту я добавляю несколько объектов AppCompatTextView также программно. На скриншоте всего 1 экземпляр макета.

Я устанавливаю вложенный RelativeLayout для запуска под TextView, но все же он начинается с самого верха.

layout.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/narrowTextnon"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="@color/cherryRed"
        android:elevation="8dp"
        android:gravity="center"
        android:layout_marginTop="15dp"
        android:padding="25dp"
        android:text="Let's narrow down now !"
        android:textColor="@color/wineBrown"
        android:textSize="22sp" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/narrowTextnon"
        android:gravity="center">

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

            <RelativeLayout
                android:id="@+id/dataContnon"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center">

            </RelativeLayout>

        </ScrollView>

    </RelativeLayout>

</RelativeLayout>

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


person iammrmehul    schedule 11.06.2017    source источник


Ответы (3)


Нормальное поведение RelativeLayout, я бы изменил корневой макет на RelativeLayout, а во вложенном RelativeLayout объявил android:layout_below="@id/narrowText"

person Tuby    schedule 11.06.2017
comment
Хорошо, вы можете объединить мой ответ с ответом @Robert K., и в конечном итоге вы измените корневой макет на RelativeLayout, установите android:layout_below="@id/narrowText" и измените высоту вложенного RelativeLayout на wrap_content - person Tuby; 11.06.2017
comment
Я собираюсь вернуться на несколько шагов назад, но на этот раз включу оба решения по изменению корневого макета на «RelativeLayout», а также установку его на android: layout_below = @ id / thinText. Я сохраню один снимок экрана с тем, что у меня есть сейчас. - person iammrmehul; 11.06.2017

Думаю, ваша проблема в этой строке: android:layout_height="match_parent" здесь: <RelativeLayout //To position ScrollView in center.

Попробуйте wrap_content там.

person Robert K.    schedule 11.06.2017
comment
Если я это сделаю, мое содержимое ScrollContent сдвинется вверх. Я хочу, чтобы они были сосредоточены - person iammrmehul; 11.06.2017

Наконец получил то, что хотел, применив:
android:layout_height="match_parent" к вложенному RelativeLayout, чтобы расположить ScrollView в центре
android:layout_below="@id/narrowText", чтобы ScrollView начинался снизу TextView, а не сверху.
android:layout_alignParentBottom = true, чтобы ScrollView растянулся от нижней части TextView до нижней части экрана.

person iammrmehul    schedule 12.06.2017