android make view包装内容但不大于特定大小

时间:2016-11-28 10:49:33

标签: android layout android-relativelayout

我有一个相对视图,它有两个孩子,一个滚动视图和一个下面的按钮现在我想这样做:我希望这个视图包装它的内容,不会空白空间,也不会超过屏幕大小。 我怎样才能做到这一点?任何人都可以帮忙吗?

这是我当前的布局文件无效。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ScrollView
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
              ....
     </ScrollView>
     <Button
        android:id="@+id/action"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/content" 
        ... />
</RelativeLayout>

3 个答案:

答案 0 :(得分:2)

RelativeLayout没有这种可能性。但是LinearLayout会这样做。只需将LinearLayout的{​​{1}}设置为android:orientation,将vertical的{​​{1}}设置为ScrollView,它应该正常工作:

android:layout_weight

答案 1 :(得分:0)

您应该使用LinearLayout并根据权重调整两个视图。这样,它不会超过任何分辨率,并会根据屏幕大小进行调整。

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

    <ScrollView
        android:fillViewPort="true"
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="4"
     </ScrollView>
     <Button
        android:id="@+id/action"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
         android:layout_weight="1"
        android:layout_below="@id/content" 
        ... />
</LinearLayout>

答案 2 :(得分:0)

您应该在底部对齐操作按钮,该滚动视图应位于该按钮上方。通过这种方式,滚动视图将始终显示在屏幕中,并且按钮也将可见。

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/action"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true" 
            ... />
        <ScrollView
            android:id="@+id/content"
            android:layout_width="match_parent"
            android:layout_above="@id/action"
            android:layout_height="match_parent">
                  ....
         </ScrollView>

    </RelativeLayout>