Android按钮间距布局不均匀

时间:2013-08-15 20:01:44

标签: android xml

我的应用程序存在问题,当在不同设备上使用按钮布局时,按钮布局不均匀。

如图所示,第一个屏幕截图显示了一个较旧,较小的屏幕安卓智能手机上的布局。

enter image description here

Nexus 4的第二个屏幕截图显示了底部按钮下方的大空白区域。

enter image description here

我以为我已经将我的布局设置为均匀,但似乎不是。

更新: 如何设置包含两个线性布局的滚动视图。

<?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="wrap_content"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="84dp"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/imgLink"
        android:layout_width="78dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:src="@drawable/appointmentmanimenuicon" />



    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="75dp"
        android:gravity="center"
        android:text="Appointments"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="30sp" />
</LinearLayout>

     <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fillViewport="true">


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

    <Button
        android:id="@+id/btnaddAppoint"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_margin="50dp"
        android:drawableLeft="@drawable/appointmentmenu"
        android:src="@drawable/appointmentmenu"
        android:text="Add Appointment"
        android:layout_weight="1" />

    </LinearLayout>

       <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:orientation="vertical" >
    <Button
        android:id="@+id/btnviewAppoint"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_margin="50dp"
        android:drawableLeft="@drawable/appointviewicon"
        android:src="@drawable/appointviewicon"
        android:text="View Appointments"
        android:layout_weight="1" />
</LinearLayout>
</ScrollView>
</LinearLayout>

2 个答案:

答案 0 :(得分:1)

带有按钮的嵌套线性布局具有400dp的固定高度。在小型设备上,底部留下较小的空间,然后在较大的nexus4上留下空间。

如果使用按钮更改线性布局以使用fill_parent的高度值,则应将按钮均匀地放置在标题(联系人)下面的父布局中剩余的空间中。

答案 1 :(得分:0)

您的第二个LinearLayout的固定高度为400dp。该布局的底部边缘始终为484dp(考虑到第一个LinearLayout),并且在任何大于484dp的屏幕上留下额外的空间。

我并不完全清楚您所需的布局是什么,但相信您想要的是将第二个LinearLayout置于父LinearLayout的中心。 为此,请添加android:layout_gravity="center_vertical",如下所示:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="400dp"
    android:orientation="vertical"
    android:layout_gravity="center_vertical" >

您还应该考虑删除ScrollView,因为该内容永远不需要滚动。