2013-07-03 12 views
12

Mam następujący układ:Android względny układ align rodzic prawo

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/test_ll" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/background" 
android:orientation="vertical" > 

<RelativeLayout 
    android:id="@+id/main_layPanelCircle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical|center_horizontal" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginTop="15dp" 
    android:background="@drawable/main_panel_a" 
    android:orientation="vertical" 
    android:padding="10dp" > 

    <ImageView 
     android:id="@+id/main_imgBreachAlert" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="5dp" /> 

    <Button 
     android:id="@+id/main_btnMap" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:background="@null" 
     android:drawableTop="@drawable/icon_find" 
     android:text="@string/main_locate" 
     android:textColor="@android:color/white" 
     android:textSize="10sp" /> 

    <LinearLayout 
     android:id="@+id/main_llPanelCycleMiddle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/main_btnMap" 
     android:layout_centerInParent="true" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/main_btnLeft" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@null" 
      android:drawableTop="@drawable/icon_call" 
      android:text="@string/main_call" 
      android:textColor="@android:color/white" 
      android:textSize="10sp" 
      android:visibility="visible" /> 

     <Button 
      android:id="@+id/main_btnEmergency" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@null" 
      android:drawableTop="@drawable/icon_emergency" 
      android:scaleType="center" 
      android:text="@string/main_emergency" 
      android:textColor="@android:color/white" 
      android:textSize="9sp" 
      android:textStyle="bold" /> 

     <Button 
      android:id="@+id/main_btnRight" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@null" 
      android:drawableTop="@drawable/icon_store" 
      android:text="@string/main_store" 
      android:textColor="@android:color/white" 
      android:textSize="10sp" /> 
    </LinearLayout> 

    <Button 
     android:id="@+id/main_btnMore" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/main_llPanelCycleMiddle" 
     android:layout_centerHorizontal="true" 
     android:background="@null" 
     android:drawableTop="@drawable/icon_more" 
     android:text="@string/main_more" 
     android:textColor="@android:color/white" 
     android:textSize="10sp" /> 
</RelativeLayout> 

</LinearLayout> 

kiedy ustawić main_imgBreachAlert android: layout_alignParentLeft = „true” eveerything jest OK (lewy obraz), ale kiedy ustawić go na prawy kopalnianych odcinkach układu względnej (lewy obraz):

http://i.imgur.com/uDJqF0k.jpg?1

mógłbyś doradzić w jaki sposób mogę rozwiązać ten problem.

Thnx

+0

Czy w tym samym czasie dopasowujesz go do lewego i prawego rodzica? Jeśli tak, to zmusza do wypełnienia rodzica, pomijając wrap_content (jako mniejsze zło, drugą opcją byłoby skurczenie cokolwiek innego w układzie do tego samego rozmiaru). –

+0

Czy znalazłeś odpowiedź na swoje pytanie? Iam działa na dokładnie ten sam problem. – Snake

Odpowiedz

26

Spróbuj android:layout_centerInParent="true" i usunąć atrybut alignParentLeft jeśli chcesz obraz wyśrodkowany w układzie.

Jeśli chcesz wyrównać tylko w prawo, po prostu użyj android:layout_alignParentRight="true".

<ImageView 
    android:id="@+id/main_imgBreachAlert" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_marginRight="5dp" /> 
+2

Chcę ustawić obraz z prawej strony, nie wyśrodkowany. – Damir

+1

Używaj tylko android: alignParentRight = "true" i usuń atrybut alignParentLeft. – Flynn81

+2

Jeśli ustawię alignParentRight niż rozciąga się nadrzędny, w którym znajduje się ta kontrola. Cienkie, że moje podejście jest złe. Właściwie chcę ustawić tło układu i zawinąć układ wokół tego tła, a następnie umieścić inne elementy sterujące w tym układzie, ale powinien on pozostać owinięty wokół obrazu tła w rozmiarze . Jeśli to ma jakiś sens. – Damir

Powiązane problemy