Android ScrollView内部的FrameLayout

Android ScrollView内部的FrameLayout,android,layout,Android,Layout,我是android开发新手,我有以下问题。 我需要使用FrameLayout内部的ScrollView使其可滚动。这是我写的 <ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentLeft="true" android

我是android开发新手,我有以下问题。 我需要使用
FrameLayout
内部的
ScrollView
使其可滚动。这是我写的

    <ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" 
    android:background="#00ff00">

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="500dp"
        android:background="#ff0000">
    </FrameLayout>
   </ScrollView>

但这不起作用。我尝试了
RelativeLayout
,它成功了,但我需要用于
FrameLayout

有什么想法吗?

您的xml示例非常好,我唯一能看到的是:如果ScrollLayout父级大于500dp,它将不会滚动

事实上,仅当内容大于scrollview时才使用滚动

在这里,您将内容高度设置为500dip,并将scrollview设置为“匹配父项” 如果此滚动视图的父视图占据整个屏幕,则在800倾斜高度屏幕上(例如)


=>根本不需要滚动条

尝试在框架布局中将布局高度设置为“包裹内容”

<FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff0000">

当FrameLayout高于屏幕边框时,它将滚动。或者,如果您需要可滚动区域的固定高度,请在ScrollView上将高度设置为500dp。这取决于你想要什么,但千万不要在ScrollView子对象上设置固定的高度。ScrollView子级的高度应始终为wrap\u content

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="500dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" 
    android:background="#00ff00">

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff0000">
    </FrameLayout>
</ScrollView>

我尝试了许多方法来解决这个问题,包括这里的答案,但没有人能帮上忙
ScrollView
始终包装
FrameLayout
,但使用
RelativeLayout
LinearLayout
一切正常


我找到了一个解决方案——设置
FrameLayout
的最小高度。您可以通过
setMinimumHeight()
方法动态设置最小高度

要在ScrollView中获取FrameLayout,请执行以下操作:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/linearLayoutHeader1"
    android:layout_centerHorizontal="true" >

    <LinearLayout
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        <FrameLayout
            android:id="@+id/FrameLayout1"
            android:layout_width="match_parent"
            android:layout_height="1440dp"
             >
        </FrameLayout>

    </LinearLayout>
</ScrollView>

android:fillViewport=“true”解决了这个问题

android:fillViewport,定义滚动视图是否应拉伸其内容以填充视口

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

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </FrameLayout>
   </ScrollView>

谢谢,解决了我的问题!框架布局一直在自动调整。