在我的例子中,如何定义包含两个部分的布局

时间:2013-07-09 19:28:18

标签: android performance android-layout android-intent android-emulator

我想定义一个如下所示的布局:

enter image description here

我的意思是将黄色区域放在屏幕顶部,使其始终在屏幕上可见,而绿色区域为<ScrollView>

我正在考虑定义两个单独的布局文件,例如 yellow_area.xml &amp; green_area.xml ,并将其包含在一个 main.xml 中。

但如何保持黄色区域始终可见&amp;绿色区域可滚动? (那就是让黄色区域看起来像是在绿色区域之上)

3 个答案:

答案 0 :(得分:3)

  

我正在考虑定义两个单独的布局文件,例如yellow_area.xml&amp; green_area.xml,并将它们包含在一个main.xml中。

如果你想重复使用其中一个或两个,那么这样做或使用fragments是一个好主意......无论哪种情况最适合你的情况。

  

但如何保持黄色区域始终可见&amp;绿色区域可滚动? (那就是让黄色区域看起来像是在绿色区域之上)

您应该可以使用RelativeLayout并使用属性

来完成此操作
android:layout_below="@id/topLayout"
假设<include>是您的“黄色”layout的{​​{1}},请在topLayout标记中找到“绿色id

修改

我认为由于所包含的layout内部View的数量,我的上述答案无效。使用layout作为LinearLayout并在每个孩子parent layout内使用layout_weight(和layout修复问题。像

ListView

使用 ?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_gravity="center_horizontal" android:gravity="center_horizontal" > <!--included a title_layout--> <include android:id="@+id/upper_area" android:layout_width="fill_parent" android:layout_height="0dp" layout="@layout/title_layout" android:layout_weight=".25"/> // add weight here <!--Listview below title_layout--> <ListView android:id="@+id/data_list" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight=".75" /> // and here </LinearLayout> 方向的layout_weightvertical必须设置为height(水平方向为0dp

答案 1 :(得分:0)

使用下面的布局,将framelayout作为片段的持有者。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent">

    <FrameLayout
        android:id="@+id/fragment_holder"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>

    <ScrollView 
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2">

     <!--Whatever you want in the scrollview-->
    </ScrollView>
</LinearLayout>

答案 2 :(得分:0)

这应该有效。使用权重来改变每个部分应占用的数量。

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

    <TextView
        ...android:layout_height="fill_parent"
        android:layout_weight=".25"/>

    <ScrollView
        ...android:layout_height="fill_parent"
        android:layout_weight=".75"/>
/>

我刚刚收录了重要部分,您需要根据自己的需求填写更多信息。 textview可以是任何东西,看起来它可能需要像其他布局一样将那张图片放在旁边,旁边有文字。