2012-12-10 78 views
35

我想創建一個列表活動項目佈局如下Android的相對佈局居中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ImageView 
     android:contentDescription="ss" 
     android:id="@+id/place_category_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingRight="15dp" 
     android:paddingTop="10dp" android:src="@drawable/marker"/> 

    <TextView 
     android:id="@+id/place_distance" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:text="320" /> 

    <TextView 
     android:id="@+id/place_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/place_category_icon" 
     android:text="Place Name" 
     android:textColor="#FFFF00" 
     android:textSize="14sp" 
     android:textStyle="bold" /> 
</RelativeLayout> 

我想如下要顯示的佈局。

enter image description here

我想對齊水平中心

enter image description here

+2

現在看起來如何? –

+0

我已添加屏幕截圖對不起。錯過了它 –

+0

請提出這個問題作爲一個問題;不像你想要做什麼的聲明。 :) – msysmilu

回答

37

我希望這將工作

EDITED

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:paddingRight="15dp" > 

    <ImageView 
     android:id="@+id/place_category_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:contentDescription="ss" 
     android:paddingTop="10dp" 
     android:src="@drawable/ic_launcher" /> 

    <TextView 
     android:id="@+id/place_distance" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:text="320" /> 

    <TextView 
     android:id="@+id/place_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="15dp" 
     android:layout_toRightOf="@+id/place_category_icon" 
     android:text="Place Name" 
     android:textColor="#FFFF00" 
     android:textSize="14sp" 
     android:textStyle="bold" /> 

</RelativeLayout> 
+0

最新消息?爲什麼我需要使用LinearLayout? –

+2

已編輯... aahh linearlayout是由Pro Eclipse UI編輯器添加的...... x.x – Faizan

+0

選擇此作爲提供源代碼的答案,因此它可以幫助其他人 –

26

如果你想使它中心然後在TextView中使用android:layout_centerVertical="true"

+0

它將內容集中到整個佈局。現在不能做一個高度 - wrap_content,以便它只需要內容的高度? –

+0

@HarshaMV沒有得到你的觀點。 –

+0

我的相對佈局對於高度和寬度都有fill_parent。由於這是一個ListView中的Item的佈局,我希望它們中的很多可以堆疊在一起。那麼我需要對RelativeView執行wrap_contnet嗎? –

1

這是你需要什麼?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <TableRow 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" > 

     <ImageView 
      android:id="@+id/place_category_icon" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="0" 
      android:contentDescription="ss" 
      android:paddingRight="15dp" 
      android:paddingTop="10dp" 
      android:src="@drawable/marker" /> 

     <TextView 
      android:id="@+id/place_title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Place Name" 
      android:textColor="#F00F00" 
      android:layout_gravity="center_vertical" 
      android:textSize="14sp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/place_distance" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="0" 
      android:layout_gravity="center_vertical" 
      android:text="320" /> 
    </TableRow> 

</RelativeLayout> 
+2

爲此使用Table Row是一個好習慣? –

6

這一定會爲你工作。

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/top_bg" > 

    <Button 
     android:id="@+id/btn_report_lbAlert" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="@dimen/btn_back_margin_left" 
     android:background="@drawable/btn_edit" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:layout_centerVertical="true" 
     android:text="FlitsLimburg" 
     android:textColor="@color/white" 
     android:textSize="@dimen/tv_header_text" 
     android:textStyle="bold" /> 

    <Button 
     android:id="@+id/btn_refresh_lbAlert" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="@dimen/btn_back_margin_right" 
     android:background="@drawable/btn_refresh" /> 
</RelativeLayout> 
5

使用這個在你的RelativeLayout

android:gravity="center_vertical"

1

可以利用重力對準與頂部和底部。

android:gravity="center_vertical" 
android:layout_alignTop="@id/place_category_icon" 
android:layout_alignBottom="@id/place_category_icon"