Jawaban:
Saya pikir Anda melakukan ini: android:layout_width = "wrap_content"
Jika ini masalahnya, lakukan ini:android:layout_width = "match_parent"
Secara umum, android:gravity="right"berbeda dari android:layout_gravity="right".
Yang pertama memengaruhi posisi teks itu sendiri di dalam Tampilan, jadi jika Anda ingin teksnya lurus, maka layout_width=harus salah satu "fill_parent"atau "match_parent".
Yang kedua mempengaruhi posisi Tampilan di dalam induknya, dengan kata lain - menyelaraskan objek itu sendiri (kotak edit atau tampilan teks) di dalam tampilan induk.
Solusi yang lebih baik adalah yang paling sederhana, dan yang kurang modifikasi dalam perilaku kode Anda .
Bagaimana jika Anda dapat mengatasi masalah ini hanya dengan 2 Properti di Anda TextView?
Alih-alih perlu mengubah LinearLayoutProperti Anda yang mungkin dapat mengubah perilaku LinearLayoutanak - anak?
Dengan menggunakan cara ini, Anda tidak perlu mengubah LinearLayoutproperti dan perilaku, Anda hanya perlu menambahkan dua properti berikut ke target Anda TextView:
android:gravity="right"
android:textAlignment="gravity"
Apa yang lebih baik untuk mengubah hanya target Anda untuk menyelesaikan solusi Anda daripada memiliki kesempatan untuk menyebabkan masalah lain di masa depan, memodifikasi ayah target Anda? Pikirkan tentang itu :)
TextViewproperti? - Anda dapat memeriksa properti dari referensi di sini: developer.android.com/reference/android/view/…
android:layout_gravitydigunakan untuk menyelaraskan tampilan teks sehubungan dengan tata letak induk.
android:gravitydigunakan untuk menyelaraskan teks di dalam tampilan teks.
Apakah Anda yakin Anda mencoba menyelaraskan teks di dalam tampilan teks ke kanan atau apakah Anda ingin memindahkan tampilan teks itu sendiri ke kanan sehubungan dengan tata letak induk atau Anda mencoba untuk mencapai keduanya
Pastikan Anda tidak menggunakan android:layout_width="wrap_content"jika demikian maka itu tidak akan dapat mengatur gravitasi karena Anda tidak memiliki cukup ruang untuk teks untuk disejajarkan. Sebaliknya gunakanandroid:layout_width="fill_parent"
android:gravity="right"
Ini pada dasarnya digunakan dalam Layout Linear sehingga Anda harus mengatur lebar TextView atau EditText sebagai
android:layout_width = "match_parent"
dan
Saat Anda bekerja di Layout Relatif, gunakan
android:layout_alignParentRight="true"
Buat (LinearLayout) android:layout_width="match_parent"dan TextView'sandroid:layout_gravity="right"
Jika ada di dalam RelativeLayoutAnda dapat menggunakanandroid:layout_toRightOf="@id/<id_of_desired_item>"
Atau
Jika Anda ingin menyelaraskan ke rightsudut perangkat tempatandroid:layout_alignParentRight="true"
Biarkan saya menjelaskan konsep gravitasi menggunakan WEB karena banyak pengembang menyadarinya.
android_layout_gravity berperilaku float:left|right|top|bottom
Sedangkan android_gravitybekerja sebagaitext_align:centre|left|right
Di Android float adalah android_layout_gravity dan text_align: adalah android_gravity.
Dan android_layout_gravity berlaku relatif terhadap orang tua. dimana android_gravity berlaku untuk anak atau konten dalamnya.
Catatan android_gravity hanya berfungsi ketika View-nya match_parent (bila ada ruang ke pusat).
Di bawah ini berfungsi untuk saya:
<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" />
Harap perhatikan android:layout_alignParentEnddan android:textAlignmentpengaturan TextView kedua.
ini harus memenuhi tujuannya
android:textAlignment="textStart"
Dalam kasus saya, saya menggunakan Relative LayoutuntukemptyString
Setelah berjuang selama satu jam. Hanya ini yang bekerja untuk saya:
android:layout_toRightOf="@id/welcome"
android:layout_toEndOf="@id/welcome"
android:layout_alignBaseline="@id/welcome"
layout_toRightOfatau layout_toEndOfkeduanya berfungsi, tetapi untuk mendukungnya lebih baik, saya menggunakan keduanya.
Untuk membuatnya lebih jelas:
Inilah yang saya coba lakukan:
Dan ini adalah keluaran emulator
Tata letak:
<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" />
Perhatikan itu:
android:layout_width="wrap_content" bekerjaGravity tidak digunakan<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>
membuat nomor satu sejajar di tengah baik horisontal dan vertikal.
mencoba untuk menambahkan android:gravity="center"keTextView
Saya telah menggunakan atribut "layout_alignRight" dalam kasus saya, dalam teksnya:
android:layout_alignRight="@+id/myComponentId"
Jika Anda ingin menambahkan margin kanan, cukup atur atribut "Layout_Margin Right" menjadi "20dp" untuk contoh, dalam teksnya:
android:layout_marginRight="20dp"