2013-03-16 97 views
0

我是Android新手(用于使用Visual Studio进行开发...),至今我对布局有疑问:Android:顶级菜单栏+滚动视图?

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

<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> 

这是工作如我所料,但我的问题是,如果我做了正确的方式还是应该做一个更好的方式(最有效)。

在此先感谢

+0

在ScrollView中删除'android:layout_marginTop =“50dp”'并添加'android:layout_below =“ @ id/linearLayout1“'除此之外你做得很好。 – VenomVendor 2013-03-16 09:44:32

回答

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会突出显示此行,并且如果您指定android:layout_weight,建议使用0dip

此外,我添加了android:fillViewport="true"到您的滚动视图。它表明滚动视图内的内容将扩展到全高,如果有必要,你可以阅读关于此属性here