2012-12-10 19 views
35

Próbuję utworzyć listę Inne pozycji w układzie następującoAndroid Układ względna Align Center

<?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> 

chcę Układ ma być wyświetlany w następujący sposób.

enter image description here

chcę wyrównać to centrum pozioma

enter image description here

+2

jak to teraz wygląda? –

+0

Dodałem zrzut ekranu przepraszam. tęsknię za nią –

+0

Proszę postawić pytanie jako pytanie; nie jak stwierdzenie, co chciałbyś robić. :) – msysmilu

Odpowiedz

37

Mam nadzieję, że to będzie działać

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

Co nowego? Dlaczego powinienem wziąć LinearLayout? –

+2

Edytowane ... aahh, że Linelayout został dodany przez edytora Pro Eclipse UI ... x.x – Faizan

+0

wybrał to jako odpowiedź na dostarczenie źródła, więc pomoże innym –

26

Jeśli chcesz, aby to centrum następnie użyć android:layout_centerVertical="true" w TextView.

+0

Jego centrowanie zawartości do całego układu. nie możesz teraz zrobić wysokości - wrap_content, tak aby zajmował tylko wysokość zawartości? –

+0

@HarshaMV nie rozumiem. –

+0

Mój układ względny ma wypełnienie_podpisem dla wysokości i szerokości. Ponieważ jest to układ dla elementu wewnątrz listy, chcę, aby wiele z nich układało się jeden na drugim. więc czy muszę zrobić wrap_contnet do RelativeView? –

1

Czy to, co trzeba?

<?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

to jest dobra praktyka, aby użyć do tego wiersza tabeli? –

6

To na pewno zadziała.

<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

Użyj tego w RelativeLayout

android:gravity="center_vertical"

1

można wykorzystywać grawitację z wyrównując górną i dolną.

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