我是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>
这是按照我的预期工作,但我的问题是,如果我以正确的方式做到这一点,或者我应该以更好的方式(最有效率)做到这一点。
提前致谢
答案 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