无法在 ScrollView 中调整 RelativeLayout 的大小以填充整个屏幕

Posted

技术标签:

【中文标题】无法在 ScrollView 中调整 RelativeLayout 的大小以填充整个屏幕【英文标题】:Can't resize a RelativeLayout inside a ScrollView to fill the whole screen 【发布时间】:2012-06-13 07:47:58 【问题描述】:

我遇到了一个奇怪的问题,我不知道如何解决。我在 ScrollView 中有一个 RelativeLayout,这个 scrollView 的高度设置为 fill_parent。相对布局也是如此。尽管如此,内容并没有填满整个屏幕,它只会出现在这个 RelativeLayout 中最后一个布局的 wrap_content 中。

这是我的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res/com.pontai"
    android:id="@+id/relativeLayout1"
    android:layout_
    android:layout_ >

    <ScrollView
        android:layout_
        android:layout_ >

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

            <LinearLayout
                android:id="@+id/linearLayout1"
                android:layout_
                android:layout_
                android:layout_alignLeft="@+id/relativeLayout3"
                android:layout_alignParentTop="true"
                android:layout_alignRight="@+id/relativeLayout5"
                android:layout_marginTop="5dp"
                android:orientation="horizontal" >

                <TextView
                    android:id="@+id/textView1"
                    android:layout_
                    android:layout_
                    android:layout_gravity="center"
                    android:text="How much points you have here:"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <TextView
                    android:id="@+id/textViewTotalPoints1"
                    android:layout_
                    android:layout_
                    android:layout_gravity="center"
                    android:text="120"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </LinearLayout>

            <RelativeLayout
                android:id="@+id/relativeLayout4"
                android:layout_
                android:layout_
                android:layout_alignLeft="@+id/relativeLayout3"
                android:layout_below="@+id/linearLayout1"
                android:layout_marginTop="5dp"
                android:layout_toLeftOf="@+id/textView7"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/textView3"
                    android:layout_
                    android:layout_
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Ratings"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textViewPositivePoints"
                    android:layout_
                    android:layout_
                    android:layout_centerHorizontal="true"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <ImageView
                    android:id="@+id/imageView2"
                    android:layout_
                    android:layout_
                    android:layout_below="@+id/textView3"
                    android:layout_toLeftOf="@+id/textView3"
                    android:src="@drawable/thumbs_up_focused" />

                <TextView
                    android:id="@+id/textViewNegativePoints"
                    android:layout_
                    android:layout_
                    android:layout_alignRight="@+id/textView3"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="3dp"
                    android:text="22"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <TextView
                    android:id="@+id/textView5"
                    android:layout_
                    android:layout_
                    android:layout_alignBaseline="@+id/textViewNegativePoints"
                    android:layout_alignBottom="@+id/textViewNegativePoints"
                    android:layout_alignLeft="@+id/textView3"
                    android:layout_marginLeft="3dp"
                    android:text="33"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <ImageView
                    android:id="@+id/imageView3"
                    android:layout_
                    android:layout_
                    android:layout_alignTop="@+id/imageView2"
                    android:layout_toRightOf="@+id/textViewNegativePoints"
                    android:src="@drawable/thumbs_down_focused" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/relativeLayout5"
                android:layout_
                android:layout_
                android:layout_alignRight="@+id/relativeLayout3"
                android:layout_alignTop="@+id/relativeLayout4"
                android:layout_toRightOf="@+id/textView7"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/textView4"
                    android:layout_
                    android:layout_
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Comments"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <ImageView
                    android:id="@+id/imageView1"
                    android:layout_
                    android:layout_
                    android:layout_alignParentBottom="true"
                    android:layout_centerHorizontal="true"
                    android:src="@drawable/speech_bubble" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/relativeLayout3"
                android:layout_
                android:layout_
                android:layout_below="@+id/relativeLayout4"
                android:layout_centerHorizontal="true"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp" >

                <TextView
                    android:id="@+id/textViewOfferName"
                    android:layout_
                    android:layout_
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="10dp"
                    android:text="Offer Name"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/textViewBusinessName"
                    android:layout_
                    android:layout_
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="35dp"
                    android:text="Business Name"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textViewBusinessAddress"
                    android:layout_
                    android:layout_
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="60dp"
                    android:text="Business Address"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textViewNull1"
                    android:layout_
                    android:layout_
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="80dp"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/textViewTotalPoints"
                    android:layout_
                    android:layout_
                    android:layout_below="@+id/textViewNull1"
                    android:layout_centerHorizontal="true"
                    android:text="0/0"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <Button
                    android:id="@+id/buttonUseNow"
                    android:layout_
                    android:layout_
                    android:layout_below="@+id/textViewTotalPoints"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="10dp"
                    android:text="@string/offer_details_use_now" />

                <TextView
                    android:id="@+id/textView2"
                    android:layout_
                    android:layout_
                    android:layout_alignParentLeft="true"
                    android:layout_below="@+id/buttonUseNow"
                    android:layout_marginTop="10dp"
                    android:text="@string/_terms_and_conditions_"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <TextView
                    android:id="@+id/textViewTermsConditions"
                    android:layout_
                    android:layout_
                    android:layout_alignParentLeft="true"
                    android:layout_below="@+id/textView2"
                    android:layout_marginTop="2dp"
                    android:textAppearance="?android:attr/textAppearanceSmall" />
            </RelativeLayout>

            <TextView
                android:id="@+id/textView7"
                android:layout_
                android:layout_
                android:layout_alignBottom="@+id/relativeLayout5"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="30dp"
                android:text="e"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:visibility="invisible" />
        </RelativeLayout>
    </ScrollView>

</RelativeLayout>

任何人都知道如何使 RelativeLayout2 与 ScrollView 具有相同的高度,也就是说,我希望它到达屏幕的底部?

感谢和问候, 费利佩

【问题讨论】:

【参考方案1】:

我以前遇到过这个问题。只需在滚动视图中使用android:fillViewport="true",它就会填满屏幕。

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scrollView1"
        android:layout_
        android:layout_
         android:fillViewport="true" >

【讨论】:

摘自我在***.com/questions/10312272/…的回答

以上是关于无法在 ScrollView 中调整 RelativeLayout 的大小以填充整个屏幕的主要内容,如果未能解决你的问题,请参考以下文章

无法在滚动视图中正确调整堆栈视图

根据设备高度在 ScrollView 中动态调整 Nativescript ContentView 的大小

嵌套 UICollectionView 时设置 ScrollView 高度问题

SwiftUI:调整 ScrollView 的边界

使用多个 SubView 调整 ScrollView

SwiftUI - 调整 ScrollView 滚动指示器插图