Android 2.3使用相对布局时的奇怪布局行为

时间:2013-02-23 19:40:47

标签: android android-layout

我的布局表现得很奇怪:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/transparent_settings"
            android:clickable="true"
            android:focusable="true"
    >

<Button
        android:layout_width="145dp"
        android:layout_height="48dp"
        android:background="@color/white"
        android:layout_centerInParent="true"
        android:id="@+id/centralButton"
        android:textSize="13sp"
        android:visibility="invisible"
        />

<LinearLayout
        android:layout_width="145dp"
        android:layout_height="48dp"
        android:background="@color/white"
        android:layout_centerHorizontal="true"
        android:id="@+id/facebookLayout"
        android:layout_above="@+id/layoutLevel1"
        android:layout_marginTop="20dp"
        >

    <ImageView android:id="@+id/facebookImage"
               android:layout_width="30dp"
               android:layout_height="30dp"
               android:layout_margin="10dp"
               android:src="@drawable/logo_facebook_off"
            />

    <TextView android:id="@+id/facebookText"
              android:layout_width="wrap_content"
              android:layout_height="fill_parent"
              android:text="@string/publish_facebook"
              android:textColor="@color/color_black"
              android:gravity="center_vertical"
              android:textSize="11sp"
            />

</LinearLayout>

<LinearLayout
        android:id="@id/layoutLevel1"
        android:layout_width="300dp"
        android:layout_height="48dp"
        android:background="@color/transparent_color"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:layout_above="@+id/layoutLevel2"
        android:orientation="horizontal"
        >

    <LinearLayout
            android:layout_width="145dp"
            android:layout_height="50dp"
            android:background="@color/white"
            android:layout_marginRight="5dp"
            android:id="@+id/vkLayout"
            >

        <ImageView android:id="@+id/vkImage"
                   android:layout_width="30dp"
                   android:layout_height="30dp"
                   android:layout_margin="10dp"
                   android:src="@drawable/logo_vkontakte_off"
                />

        <TextView android:id="@+id/vkText"
                  android:layout_width="wrap_content"
                  android:layout_height="fill_parent"
                  android:text="@string/publish_vk"
                  android:textColor="@color/color_black"
                  android:gravity="center_vertical"
                  android:textSize="11sp"
                />

    </LinearLayout>

    <LinearLayout
            android:layout_width="145dp"
            android:layout_height="50dp"
            android:background="@color/white"
            android:layout_marginLeft="5dp"
            android:id="@+id/cmLayout"
            >
        <ImageView android:id="@+id/cmImage"
                   android:layout_width="30dp"
                   android:layout_height="30dp"
                   android:layout_margin="10dp"
                   android:src="@drawable/logo_cm_off"
                />

        <TextView android:id="@+id/cmText"
                  android:layout_width="wrap_content"
                  android:layout_height="fill_parent"
                  android:text="@string/publish_odnoklassniki"
                  android:textColor="@color/color_black"
                  android:gravity="center_vertical"
                  android:textSize="11sp"
                />

    </LinearLayout>

</LinearLayout>

<LinearLayout
        android:id="@id/layoutLevel2"
        android:layout_width="300dp"
        android:layout_height="48dp"
        android:background="@color/transparent_color"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:layout_above="@id/centralButton"
        android:orientation="horizontal"
        >

    <LinearLayout
            android:layout_width="145dp"
            android:layout_height="50dp"
            android:background="@color/white"
            android:layout_marginRight="5dp"
            android:id="@+id/twitterLayout"
            >
        <ImageView android:id="@+id/twitterImage"
                   android:layout_width="30dp"
                   android:layout_height="30dp"
                   android:layout_margin="10dp"
                   android:src="@drawable/logo_twitter_off"
                />

        <TextView android:id="@+id/twitterText"
                  android:layout_width="wrap_content"
                  android:layout_height="fill_parent"
                  android:text="@string/publish_twitter"
                  android:textColor="@color/color_black"
                  android:gravity="center_vertical"
                  android:textSize="11sp"
                />

    </LinearLayout>

    <LinearLayout
            android:layout_width="145dp"
            android:layout_height="50dp"
            android:background="@color/white"
            android:layout_marginLeft="5dp"
            android:id="@+id/flickrLayout"
            >
        <ImageView android:id="@+id/flickrImage"
                   android:layout_width="30dp"
                   android:layout_height="30dp"
                   android:layout_margin="10dp"
                   android:src="@drawable/logo_flickr_off"
                />

        <TextView android:id="@+id/flickerText"
                  android:layout_width="wrap_content"
                  android:layout_height="fill_parent"
                  android:text="@string/publish_flickr"
                  android:textColor="@color/color_black"
                  android:gravity="center_vertical"
                  android:textSize="11sp"
                />
    </LinearLayout>

</LinearLayout>

<Button
        android:layout_width="145dp"
        android:layout_height="48dp"
        android:background="@color/white"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="10dp"
        android:layout_below="@id/layoutLevel2"
        android:id="@+id/edit"
        android:text="@string/edit_label_2"
        android:textSize="13sp"
        android:layout_marginTop="45dp"
        />

<Button
        android:layout_width="145dp"
        android:layout_height="48dp"
        android:background="@color/white"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="10dp"
        android:layout_below="@id/edit"
        android:id="@+id/download"
        android:text="@string/download_label"
        android:textSize="13sp"
        />

<Button
        android:layout_width="145dp"
        android:layout_height="48dp"
        android:background="@color/white"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/download"
        android:id="@+id/delete"
        android:text="@string/delete_label"
        android:textSize="13sp"
        />

<Button
        android:layout_width="145dp"
        android:layout_height="48dp"
        android:background="@color/white"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="49dp"
        android:layout_above="@+id/bottom"
        android:id="@+id/cancel"
        android:text="@string/photo_remove_photo_alert_cancel_button"
        android:textSize="13sp"
        android:visibility="invisible"
        />

<View android:layout_alignParentBottom="true"
      android:id="@id/bottom"
      android:layout_width="1dp"
      android:layout_height="1dp"/>

它在android 4.2上绝对正常。 但是当我用android 2.3在三星Galaxy ace上安装app时,布局就破了。 每个组件(按钮,图像,文本)显示并汇聚在屏幕顶部。另一个按钮上的一个按钮等等

enter image description here

3 个答案:

答案 0 :(得分:2)

首先前往图形部分并重新排列组件按钮文本和图像我的拖动。如果它不起作用,那么你可以手动添加代码 在这里你看看这个例子它在每个设备上都适合我。如果它适合你,请不要忘记给这篇文章+1!

   <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dashLL"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@layout/list_layer"
android:orientation="vertical" >

<TextView
    android:id="@+id/tvdashhead"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="ADMIN|  Dashboard"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="@android:color/black" />

<EditText
    android:id="@+id/etDUrl"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignRight="@+id/tvdashhead"
    android:layout_below="@+id/tvdashhead"
    android:hint="URL 1"
    android:inputType="textWebEditText" />
 <EditText
    android:id="@+id/etdURL2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignRight="@+id/etDUrl"
    android:layout_below="@+id/etDUrl"
    android:hint="URL 2" />

 <EditText
    android:id="@+id/etdURl1Nick"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/tvdashhead"
    android:layout_toRightOf="@+id/etDUrl"
    android:hint="Name" />

 <EditText
    android:id="@+id/etdURl2NICk"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/etdURl1Nick"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/etdURl1Nick" 
    android:hint="Name">

    <requestFocus />
</EditText>
 <EditText
    android:id="@+id/etdURL3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignRight="@+id/etdURL2"
    android:layout_below="@+id/etdURL2" 
    android:hint="URL 3"/>
 <EditText
    android:id="@+id/etdURl3Nick"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/etdURl2NICk"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/etdURl2NICk"
    android:hint="Name" />

<Button
    android:id="@+id/bDashTestUrl"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/etdURL3"
    android:layout_marginTop="31dp"
    android:enabled="false"
    android:text="Test" />

<Button
    android:id="@+id/bDashSaveUrl"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/bDashTestUrl"
    android:enabled="false"
    android:text="Save" />

<Button
    android:id="@+id/bdClear"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/bDashSaveUrl"
    android:text="Clear" />

<Button
    android:id="@+id/blogout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/bDashSaveUrl"
    android:text="Logout" />

See this how my layout looks

答案 1 :(得分:1)

事情是,当片段被替换时,它被压缩到第二张图片中显示的状态,即使在android 4+上也是如此,当片段被添加时它就可以了。

答案 2 :(得分:0)

尝试从RelativeLayout中删除android:orientation="vertical"。它仅用于LinearLayouts

相关问题