Android: исправить пустой макет прокрутки? - PullRequest
0 голосов
/ 11 ноября 2018

Моя цель - показать панель инструментов в верхней части представления, затем TextView, затем раздел ScrollView, а затем нижний колонтитул, который всегда отображается в нижней части представления. Ниже показаны только панель инструментов и заголовок TextView. Ничего не отображается ни для раздела ScrollView, ни для нижнего колонтитула. Что мне здесь не хватает?

EditActivity.xml

<RelativeLayout

    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF"
    android:focusableInTouchMode="true"
    tools:context=".EditActivity">

    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar" >
    </include>

<RelativeLayout android:id="@+id/header"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:layout_below="@+id/toolbar"  >

    <TextView
    android:id="@+id/create_skycard"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textStyle="bold"
    android:textColor="@color/colorFlLabelFinal"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:clickable="false"  />

</RelativeLayout>

<RelativeLayout android:id="@+id/myFooter"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"  >

    <ViewFlipper
        android:id="@+id/viewFlipper1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="5dp"  >

        <include layout="@layout/cardview_nobuttons"
            android:id="@+id/cardviewNobuttons"  />

        <include layout="@layout/cardview_previewbuttons"
            android:id="@+id/cardviewPreviewbuttons" />            

    </ViewFlipper>

</RelativeLayout>  

<ScrollView
android:id="@+id/ScrollView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/header"
android:layout_above="@+id/myFooter"
android:fillViewport="true"  >

<LinearLayout
    android:id="@+id/LinearLayout1"
    style="@style/scrollbar_shape_style"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"  >      

    <com.wimso.v108.widget.EditText
    ...  />

</LinearLayout>

</ScrollView>

</RelativeLayout>

1 Ответ

0 голосов
/ 11 ноября 2018

Прежде всего, вы должны ограничить высоту нижнего колонтитула. Я установил высоту ViewFlipper на 128dp для теста, чтобы вы могли рассчитать свой собственный, основываясь на его содержимом.

Второй: вы должны установить android:layout_alignParentTop="true" для include, идентификатор которого равен toolbar. Для этого вы должны установить рост и вес для него, как я сделал.

В-третьих: высота ScrollView должна быть wrap_content вместо match_parent, чтобы быть уверенной, что она простирается между представлениями верхнего и нижнего колонтитула.

Вот ваш исходный код компоновки после применения вышеуказанных исправлений:

<?xml version="1.0" encoding="utf-8"?>
<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="#FFFFFF"
    android:focusableInTouchMode="true"
    tools:context=".EditActivity">

    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" />

    <RelativeLayout
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/toolbar"
        android:gravity="center_horizontal">

        <TextView
            android:id="@+id/create_skycard"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="@color/colorFlLabelFinal"
            android:textStyle="bold" />

    </RelativeLayout>

    <ScrollView
        android:id="@+id/ScrollView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/myFooter"
        android:layout_below="@+id/header"
        android:fillViewport="true">

        <LinearLayout
            android:id="@+id/LinearLayout1"
            style="@style/scrollbar_shape_style"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <com.wimso.v108.widget.EditText
            ... />

        </LinearLayout>

    </ScrollView>

    <RelativeLayout
        android:id="@+id/myFooter"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">

        <ViewFlipper
            android:id="@+id/viewFlipper1"
            android:layout_width="match_parent"
            android:layout_height="128dp"
            android:layout_marginBottom="5dp">

            <include
                android:id="@+id/cardviewNobuttons"
                layout="@layout/cardview_nobuttons" />

            <include
                android:id="@+id/cardviewPreviewbuttons"
                layout="@layout/cardview_previewbuttons" />

        </ViewFlipper>

    </RelativeLayout>

</RelativeLayout>
...