线性布局不会填满整个屏幕

Posted

技术标签:

【中文标题】线性布局不会填满整个屏幕【英文标题】:Linear Layout does not fill the whole screen 【发布时间】:2017-01-25 03:28:09 【问题描述】:

为什么线性布局没有填满整个屏幕? 如您所见,我在线性布局中使用匹配父级。 如果我删除滚动条没有任何改变。该按钮不在屏幕底部。 ma​​in_activity.xml:

<?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:id="@+id/activity_main"
    android:layout_
    android:layout_
    android:background="@color/black"
    tools:context="com.sarahp.demo.MainActivity">

    <ScrollView
        android:layout_
        android:layout_>

        <LinearLayout                                 ----------> HERE
            android:layout_
            android:layout_
            android:orientation="vertical">

            <TextView
                android:id="@+id/textview_demo"
                android:layout_
                android:layout_
                android:layout_gravity="center"
                android:layout_marginBottom="32dp"
                android:layout_marginTop="32dp"
                android:text="@string/demo"
                android:textSize="42dp"/>

            <RelativeLayout
                android:id="@+id/fragment_container_a"
                android:layout_
                android:layout_/>

            <RelativeLayout
                android:id="@+id/fragment_container_b"
                android:layout_
                android:layout_
                android:layout_alignParentBottom="true"
                android:background="@color/transparent"/>

        </LinearLayout>
    </ScrollView>    
</RelativeLayout>

F A 是片段部分。

【问题讨论】:

尝试给fragment_container_a,height = 0 and weight = 1 底部还有空格 你想要怎样的布局? 【参考方案1】:

android:fillViewport="true" 分配给您的 ScrollView。

您的 xml 将如下所示。 Main_Activity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>
<ScrollView
    android:layout_
    android:layout_
    android:fillViewport="true">


    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical">


        <TextView
            android:layout_
            android:layout_
            android:text="Test Demo"
            android:textStyle="bold"
            android:gravity="center"/>

        <RelativeLayout
            android:id="@+id/fragment1"
            android:layout_
            android:layout_
            android:layout_weight="0.5"
            android:background="@drawable/border_image">
             <TextView
                 android:layout_
                 android:layout_
                 android:gravity="center"
                 android:text="Test text Fragement1" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/fragment2"
            android:layout_
            android:layout_
            android:layout_weight="0.5"
            >
            <TextView
                android:layout_
                android:layout_
                android:gravity="center"
                android:text="Test text Fragement2" />
        </RelativeLayout>

    </LinearLayout>
</ScrollView>
</RelativeLayout>

【讨论】:

【参考方案2】:

移除相关布局

<ScrollView

        android:layout_
        android:layout_>

        <LinearLayout                                
            android:layout_
            android:layout_
            android:orientation="vertical">

            <TextView
                android:id="@+id/textview_demo"
                android:layout_
                android:layout_
                android:layout_gravity="center"
                android:layout_marginBottom="32dp"
                android:layout_marginTop="32dp"
                android:text="@string/demo"
                android:textSize="42dp"/>

            <RelativeLayout
                android:id="@+id/fragment_container_a"
                android:layout_
                android:layout_/>

            <RelativeLayout
                android:id="@+id/fragment_container_b"
                android:layout_
                android:layout_
                android:layout_alignParentBottom="true"
                android:background="@color/transparent"/>

        </LinearLayout>
    </ScrollView> 

【讨论】:

以上是关于线性布局不会填满整个屏幕的主要内容,如果未能解决你的问题,请参考以下文章

如何让div填满整个屏幕(Masonry / Pinterest)布局

如何在嵌套线性布局中将按钮与屏幕底部对齐[重复]

调整 ImageView 的大小以使整个布局填满屏幕

Android LinearLayout线性布局详解

具有自动布局的 UITableView 在横向模式下不会填满屏幕。为啥?

如何修复线性布局中的 layout_weight?