如何修复Android布局中的视图位置?

时间:2012-05-14 06:17:27

标签: android android-layout

我设计了一些带有一些视图的布局(listview,button等..)。 当我将我的应用程序安装到Android手机中时,视图的位置与我设计的不一样。 某些按钮仅部分可见。谁能告诉我如何在布局中修复视图的位置? 这是我以前设计的代码。

<?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:background="@drawable/bg4" android:orientation="vertical"
    android:scrollbarAlwaysDrawVerticalTrack="true">

    <LinearLayout android:id="@+id/linearLayout1"
        android:layout_width="fill_parent" android:layout_height="10dp"
        android:orientation="horizontal">

        <TextView android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="3dp" android:text=" " />
    </LinearLayout>

    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:orientation="horizontal">

        <ImageView android:id="@+id/imageView1"
            android:layout_width="100dp" android:layout_height="60dp"
            android:src="@drawable/logo" />

        <TextView android:id="@+id/Loginas"
            android:layout_width="120dp" android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_marginBottom="3dp"
            android:layout_marginLeft="3dp" android:gravity="center"
            android:text="Logged in as..." android:textColor="#802A2A"
            android:textSize="18dp" android:typeface="serif" />

        <Button android:id="@+id/btnlgout"
            android:layout_width="80dp" android:layout_height="30dp"
            android:layout_gravity="bottom"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp" android:background="@drawable/logout"
            android:onClick="logout" />
    </LinearLayout>

    <LinearLayout android:id="@+id/linearLayout2"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp" android:orientation="horizontal">

        <TextView android:id="@+id/count"
            android:layout_width="90dp" android:layout_height="25dp"
            android:layout_marginLeft="5dp" android:layout_weight="1"
            android:text="Count : 4" android:textColor="#802A2A"
            android:textSize="15dp" />

        <Spinner android:id="@+id/refresh"
            android:layout_width="150dp" android:layout_height="25dp"
            android:background="@drawable/drop" />

        <Button android:id="@+id/btnpreferences"
            android:layout_width="90dp" android:layout_height="30dp"
            android:layout_marginLeft="10dp" android:background="@drawable/pref"
            android:onClick="getPreferences" />
    </LinearLayout>

    <LinearLayout android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp" android:gravity="center_horizontal"
        android:orientation="vertical">

        <LinearLayout android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:orientation="horizontal">

            <TextView android:id="@+id/column1"
                android:layout_width="70dp" android:layout_height="wrap_content"
                android:text="column1" android:textStyle="bold" />

            <TextView android:id="@+id/column2"
                android:layout_width="70dp" android:layout_height="wrap_content"
                android:text="column2" android:textStyle="bold" />

            <TextView android:id="@+id/column3"
                android:layout_width="70dp" android:layout_height="wrap_content"
                android:text="column3" android:textStyle="bold" />

            <TextView android:id="@+id/column4"
                android:layout_width="70dp" android:layout_height="wrap_content"
                android:text="column4" android:textStyle="bold" />
        </LinearLayout>

        <ListView android:id="@+id/listViewTickets"
            android:layout_width="match_parent"
            android:layout_height="200dp" android:layout_gravity="center_horizontal"
            android:layout_marginTop="10dp">
        </ListView>
    </LinearLayout>

    <LinearLayout android:id="@+id/linearLayout1"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_weight="1" android:orientation="horizontal">

        <TextView android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:text=" " />
    </LinearLayout>

    <LinearLayout android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginBottom="80dp" android:orientation="horizontal">

        <Button android:id="@+id/btnNew"
            android:layout_width="80dp" android:layout_height="30dp"
            android:background="@drawable/btnnew" />

        <Button android:id="@+id/btnUpdate"
            android:layout_width="80dp" android:layout_height="30dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp" android:background="@drawable/edit" />
    </LinearLayout>
</LinearLayout>

4 个答案:

答案 0 :(得分:0)

使用ScrollView:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@color/cherry"
    android:orientation="vertical" >

// your components

</RelativeLayout>

</ScrollView>

答案 1 :(得分:0)

在视图中使用恒定宽度的线性布局。如果你使用重量和,并提供它们的重量宽度会更好。

答案 2 :(得分:0)

您应该阅读一些布局做法,例如Romain Guy's layout tricks,并考虑使用比LinearLayout更高效的容器。

您还应该将组件相对于彼此及其父组件相对定位,这样就可以在所有屏幕/分辨率上实现看起来相同的正确布局。

答案 3 :(得分:0)

如果使用RelativeLayout,可以更好地安排视图。