Android RelativeLayout:垂直对齐不适用

时间:2015-01-05 19:35:32

标签: android relativelayout vertical-alignment

我有问题为后续布局应用垂直对齐,我不知道为什么。如果有人可以帮助我,请回复此帖。谢谢!

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp">

    <RelativeLayout android:id="@+id/ImgUp"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:background="@drawable/piggy" />

    <RelativeLayout android:id="@+id/MainActivity"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:background="@drawable/list_selector"
      android:layout_marginTop="10dp"
      android:layout_marginBottom="10dp"
      android:layout_below="@id/ImgUp" 
      android:layout_centerInParent="true">

      <TextView android:id="@+id/BarcodeOperation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/barcode"
        android:drawablePadding="5dp"
        android:text="@string/operation_barcode"
        android:gravity="center_vertical|center_horizontal"
        android:textSize="@dimen/large25"/>
    </RelativeLayout>

    <RelativeLayout android:id="@+id/ImgDown"
       android:layout_below="@id/MainActivity"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:background="@drawable/piggy" />

    <RelativeLayout
          android:layout_width="wrap_content"
          android:layout_height="wrap_content">

       <com.google.android.gms.ads.AdView
          android:id="@+id/adView" 
          android:layout_alignParentBottom="true"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          ads:adSize="BANNER"
          ads:adUnitId="@string/banner_ad_unit_id" >
      </com.google.android.gms.ads.AdView>

   </RelativeLayout>

</RelativeLayout>

这看起来像是

enter image description here

我希望它看起来像是在这里

enter image description here

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

非常容易

将中央视图设为centerInParent =“true” 然后在它上面设置一个View,在它下面设置一个。

并且......不,真的,布局太多
相反,请使用视图来支持表演。

我最终得到了类似的东西:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    >

    <!-- The "footer" (the ADs) -->
    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_alignParentBottom="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id"
    />

    <!-- The "central View" -->
    <TextView android:id="@+id/BarcodeOperation"
        android:background="@drawable/list_selector"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/barcode"
        android:drawablePadding="5dp"
        android:text="@string/operation_barcode"
        android:gravity="center_vertical|center_horizontal"
        android:textSize="@dimen/large25"
    />

    <!-- The "upper View" -->
    <ImageView
        android:id="@+id/ImgUp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/BarcodeOperation"
        android:background="@drawable/piggy"
    />

    <!-- The "lower View" -->
    <ImageView
        android:id="@+id/ImgDown"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/BarcodeOperation"
        android:background="@drawable/piggy"
    />
</RelativeLayout>

请注意,我还将已弃用的属性fill_parent替换为等效的match_parent(它需要API级别8+作为最低SDK版本 - 以下任何低于Froyo的内容都被视为已淘汰且超出当前市场,如Dashboard)所示。