Yanıtlar:
Bunu yaptığınızı düşünüyorum: android:layout_width = "wrap_content"
Eğer durum buysa, bunu yapın:android:layout_width = "match_parent"
Genel olarak, android:gravity="right"farklıdır android:layout_gravity="right".
Birincisi metnin kendisini Görünüm içindeki konumunu etkiler, bu nedenle sağa hizalanmasını istiyorsanız, layout_width=ya "fill_parent"da olmalıdır "match_parent".
İkincisi, Görünüm'ün üst öğesindeki konumunu etkiler, başka bir deyişle, nesnenin kendisini üst görünüm içinde hizalama (düzenleme kutusu veya metin görünümü).
Daha iyi çözüm, en basit olanıdır ve kod davranışınızda daha az değişiklik yapan çözümdür .
Bu sorunu yalnızca 2 Özellikler ile çözebilirseniz ne olur TextView?
LinearLayoutÖzelliklerinizi değiştirmek yerine, LinearLayoutçocukların davranışlarını değiştirebilir ?
Bu şekilde, LinearLayoutözellikleri ve davranışı değiştirmeniz gerekmez , yalnızca aşağıdaki iki özelliği hedefinize eklemeniz gerekir TextView:
android:gravity="right"
android:textAlignment="gravity"
Gelecekte başka bir soruna neden olma ve hedef babanızı değiştirme şansına sahip olmak yerine, yalnızca çözümünüzü çözmek için hedefinizi değiştirmek daha iyi ne olabilir? bunu düşün :)
TextView? - Buradaki referanstan özelliği kontrol edebilirsiniz: developer.android.com/reference/android/view/…
android:layout_gravity, metin görünümünü üst düzene göre hizalamak için kullanılır.
android:gravitymetni metin görünümü içinde hizalamak için kullanılır.
Metin görünümündeki metni sağa hizalamaya çalıştığınızdan emin misiniz veya üst görünümle ilgili olarak metin görünümünü sağa taşımak mı istiyorsunuz, yoksa her ikisini de elde etmeye mi çalışıyorsunuz?
android:layout_width="wrap_content"Eğer öyleyse kullanmadığınızdan emin olun, o zaman yerçekimini ayarlayamaz çünkü metnin hizalanması için yeterli alanınız yoktur. Bunun yerine kullanınandroid:layout_width="fill_parent"
android:gravity="right"
Temel olarak Doğrusal Düzen'de kullanılır, bu nedenle TextView veya EditText genişliğinizi
android:layout_width = "match_parent"
ve
Göreli Mizanpaj'da çalışırken,
android:layout_alignParentRight="true"
(LinearLayout) android:layout_width="match_parent"ve TextView'leri yapınandroid:layout_gravity="right"
İçinde ise RelativeLayoutkullanabilirsinizandroid:layout_toRightOf="@id/<id_of_desired_item>"
Veya
rightCihazın köşesine hizalamak istiyorsanız , yerandroid:layout_alignParentRight="true"
WEB kullanarak yerçekimi kavramını açıklayayım, çünkü birçok geliştirici bunun farkında.
android_layout_gravity davranacağını float:left|right|top|bottom
Oysa android_gravityolarak iştext_align:centre|left|right
Android şamandıra android_layout_gravity ve text_align: android_gravity olduğunu.
Ve android_layout_gravity ebeveyne göre uygulanır. burada android_gravity alt öğesi veya iç içeriği için geçerlidir.
Not android_gravity yalnızca Görünümü eşleştiğinde (ortalamak için boşluk olduğunda) çalışır.
Aşağıda benim için çalışıyor:
<TextView
android:id="@+id/tv_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sarah" />
<TextView
android:id="@+id/tv_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tv_username"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/tv_username"
android:text="San Marco"
android:textAlignment="viewEnd" />
Lütfen ikinci TextView öğesinin android:layout_alignParentEndve android:textAlignmentayarlarına dikkat edin .
bu amaca hizmet etmeli
android:textAlignment="textStart"
Benim durumumda, ben kullanıyordum Relative Layouta içinemptyString
Bir saat boyunca bunun üzerinde mücadele ettikten sonra. Sadece bu benim için çalıştı:
android:layout_toRightOf="@id/welcome"
android:layout_toEndOf="@id/welcome"
android:layout_alignBaseline="@id/welcome"
layout_toRightOfya da layout_toEndOfher ikisi de işe yarıyor, ama daha iyi desteklemek için her ikisini de kullandım.
Daha açık hale getirmek için:
Yapmaya çalıştığım buydu:
Ve bu emülatörün çıktısıydı
Yerleşim:
<TextView
android:id="@+id/welcome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="Welcome "
android:textSize="16sp" />
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@id/welcome"
android:layout_toRightOf="@id/welcome"
android:text="@string/emptyString"
android:textSize="16sp" />
Dikkat:
android:layout_width="wrap_content" İşlerGravity Kullanılmıyor<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/tct_postpone_hour"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:gravity="center_vertical|center_horizontal"
android:text="1"
android:textSize="24dp" />
</RelativeLayout>
bir numarayı hem yatay hem de dikey olarak hizalar
eklemeyi deneyin android:gravity="center"içineTextView