Android:顶级菜单栏+滚动查看?

时间:2013-03-16 08:26:06

标签: android layout

我是Android的新手(用于使用Visual Studio开发......)到目前为止我对布局有疑问:

我想要做的是在顶部有一个条形的布局(只是为了放置一些按钮或额外的信息)和一个填充屏幕其余部分的滚动视图。 这是我到目前为止的方式:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Home" >

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:background="@android:color/white" >

    <!-- I can put any button or text I want in here -->

</LinearLayout>

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="50dp"

    android:background="@drawable/wallpaper" >


</ScrollView>

这是按照我的预期工作,但我的问题是,如果我以正确的方式做到这一点,或者我应该以更好的方式(最有效率)做到这一点。

提前致谢

1 个答案:

答案 0 :(得分:1)

不建议绝对定位。例如,如果您需要将高度从50dp增加到100dp,则必须在几个不同的位置更改此值。

我至少知道两种改善布局的方法。

1)使用RelativeLayout的功能(android:layout_below="@id/linearLayout1"或其对应的layout_above)

<RelativeLayout ...>
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="@android:color/white">
    </LinearLayout>

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/linearLayout1"
        android:fillViewport="true"
        android:background="@drawable/wallpaper" >
    </ScrollView>
</RelativeLayout>

2)替换为LinearLayout(并使用android:layout_weight="1.0"

<LinearLayout ...>
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="@android:color/white">
    </LinearLayout>

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1.0"
        android:fillViewport="true"
        android:background="@drawable/wallpaper" >
    </ScrollView>
</LinearLayout>

android:layout_height="0dip"行可能看起来很奇怪。实际上您可以使用match_parent,但Eclipse IDE会突出显示此行,如果您已指定0dip,则建议使用android:layout_weight

我还在您的滚动视图中添加了android:fillViewport="true"。它表示如果有必要,滚动视图内的内容将扩展到完整高度,您可以阅读此属性here