Как заставить scrollview распространяться за пределы экрана android?

Мой корневой элемент - это относительная компоновка, в которой у меня есть один LinearLayout, завернутый в представление прокрутки. LinearLayout имеет несколько дочерних элементов, которые включают textViews, editText и другие Linearlayouts, которые имеют textviews и editText. Посмотрел несколько SO сообщений, но не помогло. Все, что я получаю, это серая полоса в правой части экрана, которая прокручивается максимум на дюйм, не может прокручиваться дальше вниз. Последние несколько компонентов видны только наполовину, и прокрутка не происходит до нижней части, где находятся мои последние компоненты видимый. Установка параметра viewport в true/false не имеет никакого эффекта. Любая помощь будет оценена.

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_plain"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Testactivity">

<TextView
    android:id="@+id/tv_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerInParent="true"
    android:layout_marginTop="40dp"
    android:gravity="center"
    android:singleLine="true"
    android:text="INFORMATION"
    android:textAlignment="center"
    android:textColor="#6D6E71"
    android:textSize="25sp"
    />

<ScrollView
    android:layout_width="300dp"
    android:layout_height="560dp"
    android:layout_below="@+id/tv_title"
    android:layout_centerInParent="true"
    android:fillViewport="true"
    >

    <LinearLayout
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginTop="10dp"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tv_firstname"
                android:layout_width="170dp"
                android:layout_height="30dp"
                android:layout_gravity="left"
                android:gravity="left|center"
                android:text="FIRST NAME*"
                android:textColor="#E96F34"
                android:textSize="16sp"
                />

            <TextView
                android:id="@+id/tv_lastname"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:layout_gravity="left"
                android:gravity="left|center"
                android:text="LAST NAME*"
                android:textColor="#E96F34"
                android:textSize="16sp"
                />

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <EditText
                android:id="@+id/et_firstname"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:background="@drawable/orange_full_rounded_corner"
                android:gravity="center"
                android:inputType="textPersonName"
                android:maxLength="3"
                />

            <Space
                android:layout_width="40dp"
                android:layout_height="30dp"/>

            <EditText
                android:id="@+id/et_lastname"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:background="@drawable/orange_full_rounded_corner"
                android:gravity="center"
                android:inputType="textPersonName"
                />
        </LinearLayout>

        <TextView
            android:id="@+id/tv_titlein"
            android:layout_width="170dp"
            android:layout_height="30dp"
            android:layout_gravity="left"
            android:gravity="left|center"
            android:text="TITLE"
            android:textColor="#E96F34"
            android:textSize="16sp"
            />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <RadioGroup
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:orientation="horizontal">

                <RadioButton
                    android:id="@+id/cb_mr"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/orange_full_rounded_corner"
                    android:gravity="center"
                    android:text="MR."
                    />

                <Space
                    android:layout_width="30dp"
                    android:layout_height="match_parent"/>

                <RadioButton
                    android:id="@+id/cb_mrs"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/orange_full_rounded_corner"
                    android:gravity="center"
                    android:text="MRS./MS."
                    />
            </RadioGroup>
        </LinearLayout>

        <TextView
            android:id="@+id/tv_company"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layout_gravity="left"
            android:gravity="left|center"
            android:text="COMPANY"
            android:textColor="#E96F34"
            android:textSize="16sp"
            />

        <EditText
            android:id="@+id/et_company"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="@drawable/orange_full_rounded_corner"
            android:gravity="center"
            android:inputType="number"
            />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tv_phone"
                android:layout_width="170dp"
                android:layout_height="30dp"
                android:layout_gravity="left"
                android:gravity="left|center"
                android:text="PHONE*"
                android:textColor="#E96F34"
                android:textSize="16sp"
                />

            <TextView
                android:id="@+id/tv_mobilephone"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:layout_gravity="left"
                android:gravity="left|center"
                android:text="MOBILE PHONE*"
                android:textColor="#E96F34"
                android:textSize="16sp"
                />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <EditText
                android:id="@+id/et_phone"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:background="@drawable/orange_full_rounded_corner"
                android:gravity="center"
                android:inputType="number"
                android:maxLength="3"
                />

            <Space
                android:layout_width="40dp"
                android:layout_height="30dp"/>

            <EditText
                android:id="@+id/et_mobilephone"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:background="@drawable/orange_full_rounded_corner"
                android:gravity="center"
                android:inputType="number"
                />
        </LinearLayout>

        <TextView
            android:id="@+id/tv_emailaddress"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layout_gravity="left"
            android:gravity="left|center"
            android:text="EMAIL*"
            android:textColor="#E96F34"
            android:textSize="16sp"
            />

        <EditText
            android:id="@+id/et_emailaddress"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="@drawable/orange_full_rounded_corner"
            android:gravity="center"
            android:inputType="textEmailAddress"
            />

        <TextView
            android:id="@+id/tv_address"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layout_gravity="left"
            android:gravity="left|center"
            android:text="ADDRESS"
            android:textColor="#E96F34"
            android:textSize="16sp"
            />

        <EditText
            android:id="@+id/et_address"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="@drawable/orange_full_rounded_corner"
            android:gravity="center"
            android:inputType="text"
            />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tv_city"
                android:layout_width="170dp"
                android:layout_height="30dp"
                android:layout_gravity="left"
                android:gravity="left|center"
                android:text="CITY"
                android:textColor="#E96F34"
                android:textSize="16sp"
                />

            <TextView
                android:id="@+id/tv_zipcode"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:layout_gravity="left"
                android:gravity="left|center"
                android:text="ZIP CODE"
                android:textColor="#E96F34"
                android:textSize="16sp"
                />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:orientation="horizontal">

            <EditText
                android:id="@+id/et_city"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:background="@drawable/orange_full_rounded_corner"
                android:gravity="center"
                android:inputType="text"
                android:maxLength="3"
                />

            <Space
                android:layout_width="40dp"
                android:layout_height="30dp"/>

            <EditText
                android:id="@+id/et_zipcode"
                android:layout_width="130dp"
                android:layout_height="30dp"
                android:background="@drawable/orange_full_rounded_corner"
                android:gravity="center"
                />
        </LinearLayout>
    </LinearLayout>
</ScrollView>

1 ответ

Ваша структура макета в порядке. Проблема в том, что вы устанавливаете указанную высоту почти для всего, это нет, нет. Если вы хотите работать с высотой шрифта, есть свойство с именем

android:textSize

во всех представлениях, связанных с текстом, и предпочтительной единицей является sp для текста, dp для изображений.

Измените все высоты на

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