Pertanyaan Bagaimana cara memusatkan teks secara horizontal dan vertikal dalam TextView?


Bagaimana cara memusatkan teks secara horizontal dan vertikal dalam a TextView, sehingga muncul tepat di tengah - tengah TextView di Android?


1684
2018-01-11 00:27


asal


Jawaban:


Saya berasumsi Anda menggunakan tata letak XML.

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"
    android:text="@string/**yourtextstring**"
/>

Anda juga bisa menggunakan gravitasi center_vertical atau center_horizontal sesuai dengan kebutuhan anda.

dan sebagai @stealthcopter berkomentar di java: .setGravity(Gravity.CENTER);


2646
2018-01-11 01:53



android:gravity="center" 

Ini akan berhasil


394
2018-02-08 22:54



Anda juga dapat mengaturnya secara dinamis menggunakan:

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

268
2017-11-21 12:25



android:layout_centerInParent="true"

Ini berfungsi saat digunakan dengan RelativeLayout di mana tinggi dan lebar tata letak disetel ke wrap_content.


97
2017-11-11 00:58



Anda juga dapat menggunakan kombinasi:

android:gravity="left|center"

Kemudian, jika lebar textview lebih dari "fill_parent" teks akan tetap sejajar ke kiri (tidak terpusat karena gravitasi hanya diatur ke "tengah").


68
2018-01-01 20:11



Terapkan gravitasi:

TextView txtView = (TextView) findViewById(R.id.txtView);
txtView.setGravity(Gravity.CENTER_HORIZONTAL);

Untuk vertikal:

txtView.setGravity(Gravity.CENTER_VERTICAL);

Dalam XML:

<TextView      
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center"
    android:text="@string/Hello_World"        
/>

44
2018-05-30 05:34



Jika Anda menggunakan TableLayout pastikan untuk mengatur gravitasi TableRows ke pusat juga. Kalau tidak, itu tidak akan berhasil. Setidaknya itu tidak bekerja dengan saya sampai saya mengatur gravitasi TableRow ke pusat.

Misalnya, seperti ini:

<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center">        
    <TextView android:text="@string/chf" android:id="@+id/tv_chf" android:layout_weight="2" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center"></TextView>        
</TableRow>

35
2018-05-13 11:57



Anda perlu mengatur Gravitasi TextView (Pusat Horisontal & Pusat Vertikal) seperti ini:

android:layout_centerHorizontal="true"   

dan

android:layout_centerVertical="true"

Dan secara dinamis menggunakan:

textview.setGravity(Gravity.CENTER);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

33
2018-05-15 05:03



Ada dua cara untuk melakukan hal ini.

Yang pertama dalam kode XML. Anda perlu memperhatikan di Gravity Atribut. Anda juga dapat menemukan atribut ini di Editor Grafis; mungkin lebih mudah daripada XML EDITOR.

<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_vertical|center_horizontal"
    android:text="Your Text"
/>

Untuk skenario spesifik Anda, nilai-nilai gravitasi akan menjadi:

center_vertical|center_horizontal

Dalam editor grafis, Anda akan menemukan semua nilai yang mungkin, bahkan melihat hasilnya.


32
2017-10-17 12:11



Menurutku,

android:gravity="center"

lebih baik dari,

android:layout_centerInParent="true"

yang lebih baik dari,

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"

setidaknya untuk memformat teks.


29
2017-07-16 04:28