2012-12-10 32 views
35

Sto cercando di creare un elenco di attività Articolo layout come segueAndroid layout relativa Allinea al centro

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

Voglio che il layout da visualizzare come segue.

enter image description here

Voglio allinearlo centro orizzontale

enter image description here

+2

come appare adesso? –

+0

ho aggiunto uno screenshot mi dispiace. lo mancate –

+0

Per favore ponete la domanda come una domanda; non come una dichiarazione di ciò che vorresti fare. :) – msysmilu

risposta

37

Spero che questo funzionerà

CURA

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

Cosa c'è di nuovo? Perché dovrei aver bisogno di prendere LinearLayout? –

+2

Modificato ... aahh che linearlayout è stato aggiunto dall'editor UI di Pro Eclipse ... x.x – Faizan

+0

ha scelto questo come risposta per fornire la fonte in modo da aiutare gli altri –

26

Se si vuole rendere il centro quindi utilizzare android:layout_centerVertical="true" nel TextView.

+0

Centra il contenuto nell'intero layout. ora non posso fare un'altezza - wrap_content in modo che richieda solo l'altezza del contenuto? –

+0

@HarshaMV non ha capito il tuo punto. –

+0

il mio layout relativo ha fill_parent sia per l'altezza che per la larghezza. Poiché questo è il layout per un oggetto all'interno di un ListView, voglio che molti di essi si sovrappongano l'uno sull'altro. quindi devo fare wrap_contnet su RelativeView? –

1

E 'questo quello che ti serve?

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

è una buona pratica utilizzare Table Row per questo? –

6

Questo sicuramente funzionerà per voi.

<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

Utilizzare questo nella vostra RelativeLayout

android:gravity="center_vertical"

1

È possibile utilizzare la gravità con l'allineamento superiore e inferiore.

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