2010-01-22 18 views
11

Tek bir TextView ve bir ImageView ile basit bir LinearLayout var. TextView'daki metnin sağa hizalanmasını istiyorum, ancak sonuç Metnin sola hizalandığını gösteriyor. Benim düzen xml ile yanlış bir şey var mı? Teşekkürler.android: layout_gravity beklendiği gibi çalışmıyor


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="wrap_content" android:background="#E8E3E4"> 
    <LinearLayout android:orientation="horizontal" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" 
     > 
     <TextView android:layout_width="260dp" android:layout_height="wrap_content" 
      android:text="More Comments" android:textStyle="bold" android:background="#ff0000" 
      android:textColor="#121222" android:layout_gravity="right" /> 
     <ImageView android:layout_width="50dp" 
      android:layout_height="wrap_content" android:src="@drawable/arrow_right" 
      android:layout_gravity="center" android:scaleType="centerInside" /> 
    </LinearLayout> 
</LinearLayout> 
Teşekkürler, Michael. Ama bahsettiğin geçici çözüm de işe yaramıyor.

Ben RelativeLayout kullanmaya çalıştı, ama hala beni gibi neden verdi: Daha Yorumlar (Simge) beklediğim Ne

RelativeLayout xml altındadır Daha Yorumlar (Simge) 'dir. Bununla ilgili yanlış bir şey var mı? Michael'ın yorumunda çözüm takiben

<?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"> 
    <TextView android:id="@+id/label" android:layout_width="260dp" 
     android:layout_height="wrap_content" android:text="More Comments" 
     android:textStyle="bold" android:background="#ff0000" 
     android:textColor="#121222" android:layout_gravity="right" /> 
    <ImageView android:layout_width="50dp" android:layout_height="wrap_content" 
     android:src="@drawable/arrow_right" android:layout_gravity="center" 
     android:scaleType="centerInside" android:layout_toRightOf="@id/label" /> 
</RelativeLayout> 

, aşağıda XML var. Ben çıkış olması bekleniyor:

 RightLeft 

ama gerçek çıktısı:

Right    Left 

Yani geçici çözüm benim için çalışmaz. Düşüncesi olan var mı?

<LinearLayout android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 
      <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="right" 
        android:layout_weight="1.0"      
        android:text="RIGHT"/> 
      <TextView 
        android:layout_width="wrap_content" 

        android:layout_height="wrap_content" 
        android:layout_gravity="left" 
        android:text="LEFT"/> 
    </LinearLayout> 

+0

Eğer xml ekleyebilir miyim? – jball

+0

O yaptı, sadece biçimlendirmedi. –

+0

(ayrıca: düzenlenebilir, görünür ve görünür * kod olarak * ...) –

cevap

7

Xml'mde neyin yanlış olduğunu anladım. TextView'daki metni sağa hizalamak için layout_gravity yerine yerçekimi kullanmalıydım. Aşağıdaki XML beklendiği gibi çalışır.

<?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"> 
    <TextView android:id="@+id/label" android:layout_width="260dp" 
     android:layout_height="wrap_content" android:text="More Comments" 
     android:textStyle="bold" android:background="#ff0000" 
     android:textColor="#121222" android:gravity="right" /> 
    <ImageView android:layout_width="50dp" android:layout_height="wrap_content" 
     android:src="@drawable/arrow_right" android:layout_gravity="center" 
     android:scaleType="centerInside" android:layout_toRightOf="@id/label" /> 
</RelativeLayout> 
+0

O zaman bu cevabı 'kabul edildi' olarak işaretlemelisiniz (sorunun solundaki işareti işaretleyin). –

1

Ben android ile sadece birkaç proje yaptık ama android: layout_gravity üst içinde View için hizalama belirtir, android: yerçekimi hizalamasını belirtir Görünürlüğü belirttiğiniz Görünüm içinde bulunan görünümler. Belirtilene uygun olduğundan emin olun. Belgeler bu ikisi arasında ayrım yapmaz. Örnek bir XML gönderdiyseniz, size yardımcı olmak daha kolay olurdu.

DÜZENLEME: Ben şimdi XML gönderdiniz bakın

. Uygun nitelik kümesi varmış gibi görünüyor, ancak sağa metin hizalama eğer o zaman neden doğrusal düzende ilk koyarsınız? Soldan sağa gitmek için değiştirmeyi öneririm.

33

Yatay yönlendirmeli LinearLayouts, sağ/sol çekimi desteklemiyor. Bir geçici çözüm here bulabilirsiniz.

+0

+1, Bu cevabı görmeden önce bu bilgiyi bulmaya biraz zaman harcadım. –

0

İşte projem için yazdığım bazı kodlar. Aradığın şeyi başarır. Kontrol tiplerini ve benzerlerini değiştirirdim ve sen de çalışırsın.

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="50dip" 
    android:background="#ffdddddd"> 
    <TextView android:layout_width="260dp" 
     android:layout_height="wrap_content" 
     android:text="More Comments" 
     android:textStyle="bold" 
     android:background="#ff0000" 
     android:textColor="#121222" 
     android:layout_centerHorizontal="true" 
     android:layout_alignParentTop="true" /> 
    <ImageView android:layout_width="50dp" 
     android:layout_height="wrap_content" 
     android:src="@drawable/arrow_right" 
     android:scaleType="centerInside" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" /> 
</RelativeLayout> 
+0

Merhaba Jared, Kodunuzu TextView ile ToogleButton ile değiştirdim. Çalışmadı: TextView'daki metin sağa hizalanmadı. – user256239

+0

Bu, sadece kopyalamanız gerekir. – Jared

İlgili konular