【问题标题】:Android LinearLayout fill until bottom of screenAndroid LinearLayout 填充到屏幕底部
【发布时间】:2017-09-13 06:32:32
【问题描述】:

我有一个由以下组件组成的 Android 活动: FrameLayout > ScrollView > LinearLayout > ListView

我的 ListView 是我的最后一个组件,我希望它的高度大小从前一个组件的结尾一直到屏幕的底部。 问题:不幸的是现在它的大小只有高度大小只有1行的大小。

我已将所有 layout_height 设置为 match_parent 属性,但没有效果。

问题:你知道如何让我的 ListView 占据所有高度空间到可用屏幕的底部吗?

谢谢!

XML

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="it.bitrack.fabio.bitrack.ScheduleView"
    android:layout_marginTop="60dp">

    <!-- TODO: Update blank fragment layout -->

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

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

            <TextView
                android:id="@+id/textView7"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="10dp"
                android:text="Select an asset"
                android:textStyle="bold|italic" />

            <Spinner
                android:id="@+id/assetSpinner"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="10dp"
                android:textStyle="bold|italic" />

            <LinearLayout
                android:id="@+id/assetBookingLinearLayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/textView9"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:padding="10dp"
                    android:text="Booking schedule"
                    android:textStyle="bold|italic" />

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

                    <TextView
                        android:id="@+id/textView12"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:padding="10dp"
                        android:text="From: "
                        android:textStyle="bold|italic" />

                    <TextView
                        android:id="@+id/fromDatetimeTextView"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:text="Date and time" />

                    <ImageButton
                        android:id="@+id/setFromDatetimeImageButton"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:src="@android:drawable/ic_menu_my_calendar" />

                    <TextView
                        android:id="@+id/textView13"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:padding="10dp"
                        android:text="To: "
                        android:textStyle="bold|italic" />

                    <TextView
                        android:id="@+id/toDatetimeTextView"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:text="Date and time" />

                    <ImageButton
                        android:id="@+id/setToDatetimeImageButton"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:src="@android:drawable/ic_menu_my_calendar" />
                </LinearLayout>

                <Button
                    android:id="@+id/assetBookingButton"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="Proceed with booking" />

            </LinearLayout>


            <LinearLayout
                android:id="@+id/assetBookingsLinearLayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/textView8"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:padding="10dp"
                    android:text="Current bookings"
                    android:textStyle="bold|italic" />

                <ListView
                    android:id="@+id/assetBookingsListView"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />
            </LinearLayout>

        </LinearLayout>>
    </ScrollView>

</FrameLayout>

【问题讨论】:

    标签: android android-activity android-linearlayout


    【解决方案1】:

    使用此布局代码:

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="60dp">
    
        <!-- TODO: Update blank fragment layout -->
    
        <ScrollView
            android:id="@+id/scrollview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
    
                <TextView
                    android:id="@+id/textView7"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:padding="10dp"
                    android:text="Select an asset"
                    android:textStyle="bold|italic" />
    
                <Spinner
                    android:id="@+id/assetSpinner"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:padding="10dp"
                    android:textStyle="bold|italic" />
    
                <LinearLayout
                    android:id="@+id/assetBookingLinearLayout"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">
    
                    <TextView
                        android:id="@+id/textView9"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:padding="10dp"
                        android:text="Booking schedule"
                        android:textStyle="bold|italic" />
    
                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="horizontal">
    
                        <TextView
                            android:id="@+id/textView12"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:padding="10dp"
                            android:text="From: "
                            android:textStyle="bold|italic" />
    
                        <TextView
                            android:id="@+id/fromDatetimeTextView"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:padding="5dp"
                            android:text="Date and time" />
    
                        <ImageButton
                            android:id="@+id/setFromDatetimeImageButton"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:padding="5dp"
                            android:src="@android:drawable/ic_menu_my_calendar" />
    
                        <TextView
                            android:id="@+id/textView13"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:padding="10dp"
                            android:text="To: "
                            android:textStyle="bold|italic" />
    
                        <TextView
                            android:id="@+id/toDatetimeTextView"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:padding="5dp"
                            android:text="Date and time" />
    
                        <ImageButton
                            android:id="@+id/setToDatetimeImageButton"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:padding="5dp"
                            android:src="@android:drawable/ic_menu_my_calendar" />
                    </LinearLayout>
    
                    <Button
                        android:id="@+id/assetBookingButton"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Proceed with booking" />
    
                </LinearLayout>
    
            </LinearLayout>
        </ScrollView>
    
        <LinearLayout
            android:id="@+id/assetBookingsLinearLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/scrollview"
            android:orientation="vertical">
    
            <TextView
                android:id="@+id/textView8"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="10dp"
                android:text="Current bookings"
                android:textStyle="bold|italic" />
    
            <ListView
                android:id="@+id/assetBookingsListView"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </LinearLayout>
    
    </RelativeLayout>
    

    几点建议:

    1. 不要在ScrollView里面使用listview...
    2. 使用RelativeLayout作为根元素来对齐视图后一个 另一个。
    3. 对于scrollView 使用android:layout_height="wrap_content"android:fillViewport="true"

    输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-22
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 2019-01-28
      相关资源
      最近更新 更多