Apakah ada yang tahu cara membungkus teks di TextView di platform Android. yaitu jika teks dalam tampilan teks melebihi panjang layar, itu harus ditampilkan di baris kedua.
Saya telah mencari dan mencoba yang berikut ini:
android:scrollHorizontally="false",
android:inputType="textMultiLine",
android:singleLine="false"
Tapi tidak ada yang berhasil ..
Adakah yang bisa menyarankan bagaimana saya bisa melakukannya.
android:inputType="textPersonName"
. Rupanya itu telah ditambahkan oleh alat desain Android Studio. Menghapus atribut itu memperbaiki masalah! Mungkin ada jenis masukan lain yang juga mencegah penggabungan.Jawaban:
Bagi saya masalah ini hanya terjadi di Android <4.0
Kombinasi parameter yang saya gunakan adalah:
android:layout_weight="1" android:ellipsize="none" android:maxLines="100" android:scrollHorizontally="false"
Jumlah maxLines tampaknya merupakan potongan terakhir acak yang membuat TextView saya terbungkus.
sumber
match_parent
, yang tidak sama dengan membuat tinggi TextView diperluas untuk menyertakan baris tambahan.Tata Letak Batasan
<TextView android:id="@+id/some_textview" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintLeft_toLeftOf="@id/textview_above" app:layout_constraintRight_toLeftOf="@id/button_to_right"/>
android:maxLines="2"
untuk mencegah ekspansi vertikal (2 hanyalah contoh)android:ellipsize="end"
Lebar 0dp memungkinkan pembatas kiri / kanan untuk menentukan seberapa lebar widget Anda.
Menyetel batasan kiri / kanan menyetel lebar sebenarnya dari widget Anda, yang di dalamnya teks Anda akan terbungkus.
Dokumen Tata Letak Batasan
sumber
Untuk kasus di mana
TextView
ada di dalam aTableLayout
, solusinya adalah mengaturandroid:shrinkColumns="1"
padaTableLayout
. (Ganti1
dengan nomor kolom TextView yang ingin Anda bungkus. (0-indexed))AFAICT, tidak ada atribut lain yang dibutuhkan di
TextView
.Untuk kasus lain, lihat jawaban lain di sini.
FWIW, saya awalnya mendapatkannya untuk bekerja dengan
<TextView android:id="@+id/inventory_text" android:layout_width="fill_parent" android:layout_weight="1" android:width="0dp"
tetapi itu menghasilkan beberapa ruang kosong ekstra di bagian bawah Dialog yang menampung semuanya.
sumber
Anda harus menggunakan 2 parameter:
android:ellipsize="none"
: teks tidak dipotong pada lebar tampilan teksandroid:scrollHorizontally="false"
teks membungkus sebanyak mungkin baris yang diperlukansumber
Ini memiliki tiga nilai konstan
<android.support.v7.widget.AppCompatTextView android:id="@+id/textquestion" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:scrollHorizontally="false" android:text="Your Question Display Hear....Your Question Display Hear....Your Question Display Hear....Your Question Display Hear...." android:textColor="@android:color/black" android:textSize="20sp" android:textStyle="bold" app:breakStrategy="simple" />
yourtextview.setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE);
Untuk referensi lebih lanjut lihat BreakStrategy ini
sumber
Ini harus memperbaiki masalah Anda:
android:layout_weight="1"
.sumber
match_parent
. Tidak persis sama seperti yang diinginkan OP.layout_weight="1"
perbaiki masalahnya untuk saya. Namun, TableRow saya yang berisi TextView, telahlayout_height
disetel ke nilai tertentu. Mungkin akan berguna bagi seseorangOke teman-teman kebenaran ada di suatu tempat di tengah karena Anda harus melihat masalah dari pandangan orang tua dan anak. Solusi di bawah ini HANYA berfungsi ketika mode spinner =
dialog
terlepas dari versi Android (tidak ada masalah di sana .. mengujinya di VD dan DesireS dengan Android => 2.2):. Setel mode spinner (induk) Anda seperti:
android:spinnerMode="dialog"
Setel properti textview (tampilan kustom anak) ke:
android:layout_weight="1" android:ellipsize="none" android:maxLines="100" android:scrollHorizontally="false"
Saya harap ini juga berhasil untuk Anda.
sumber
Dengan menyetel
android:maxEms
ke nilai yang diberikan bersama denganandroid:layout_weight="1"
akan menyebabkan TextView membungkus setelah mencapai panjang ems yang ditentukan.sumber
Di Android Studio 2.2.3 di bawah
inputType
properti ada properti bernamatextMultiLine
. Memilih opsi ini menyelesaikan masalah serupa untuk saya. Saya harap itu membantu.sumber
Baru saja mengerjakan TextView di dalam tata letak di dalam RecyclerView. Saya telah teks mendapatkan memotong, mantan, untuk
Read this message
, saya melihat:Read this
. Saya mencoba mengaturandroid:maxLines="2"
pada TextView, tetapi tidak ada yang berubah. Namun,android:lines="2"
menghasilkan diRead this
baris pertama danmessage
di baris ke-2.sumber
Saya memiliki masalah yang sama. Perubahan berikut membuatnya berhasil -
android:layout_width="wrap_content"
Elipsis, maxLines, atau layout_weight - semua tidak ada bedanya. Catatan - Lebar induk juga disetel sebagai wrap_content.
sumber
Yang harus Anda lakukan adalah mengatur lebar tampilan teks Anda .
android: layout_width = "60dp"
Anda dapat mengubah lebar sesuai pilihan Anda. Ketik saja kalimat panjang untuk memeriksa apakah berfungsi seperti ini
android: text = "Saya ingin menjadi salah satu teknisi perangkat lunak kelas dunia"
sumber
Coba pendekatan @ Guykun
android:layout_weight="1" android:ellipsize="none" android:maxLines="100" android:scrollHorizontally="false"
Selain itu, pastikan lebar orang tua tidak disetel untuk membungkus konten. Ini adalah hal yang saya lewatkan.
sumber
Saya menggunakan Android 2.2 dan textview saya akan secara otomatis masuk ke baris berikutnya jika melebihi layar.
Jika Anda ingin teks masuk ke baris berikutnya sebelum akhir layar, cukup tambahkan (masukkan saja nilai dp Anda sendiri). Ini akan berguna jika Anda memiliki gambar di sebelah kanan teks.
android:layout_marginRight="52dp"
sumber
Cukup aneh - Saya membuat TextView dalam Kode dan dibungkus - meskipun saya tidak menyetel apa pun kecuali hal-hal standar - tetapi lihat sendiri:
LinearLayout.LayoutParams childParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); childParams.setMargins(5, 5, 5, 5); Label label = new Label(this); label.setText("This is a testing label This is a testing label This is a testing label This is a testing labelThis is a testing label This is a testing label"); label.setLayoutParams(childParams);
Seperti yang Anda lihat dari definisi params, saya menggunakan LinearLayout. Label kelas hanya memperluas TextView - tidak melakukan apa pun di sana kecuali menyetel ukuran font dan warna font.
Saat menjalankannya di emulator (API Level 9), teks secara otomatis menggabungkan 3 baris.
sumber
LinearLayout.LayoutParams childParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
. Kemungkinan besar itu pembungkus yang Anda anggap "automagic"Cukup atur
layout_with
ke ukuran tertentu, saat teks memenuhi lebar maksimum, teks akan meluap ke baris berikutnya yang menyebabkan efek bungkus.<TextView android:id="@+id/segmentText" android:layout_marginTop="10dp" android:layout_below="@+id/segmentHeader" android:text="You have the option to record in one go or segments(if you swap options you will loose your current recordings)" android:layout_width="300dp" android:layout_height="wrap_content"/>
sumber
Caranya adalah dengan lebar textView, coba jadikan nomor khusus seperti:
<TextView android:layout_width="300dp" android:layout_height="wrap_content"/>
Saya sudah mencoba banyak solusi tanpa hasil apa pun, saya sudah mencoba:
android:ellipsize="none" android:scrollHorizontally="false"
satu-satunya hal yang memicu opsi bungkus adalah lebar khusus
sumber
Anda perlu menambahkan TextView Anda di ScrollView dengan sesuatu seperti ini:
<ScrollView android:id="@+id/SCROLL_VIEW" android:layout_height="150px" android:layout_width="fill_parent"> <TextView android:id="@+id/TEXT_VIEW" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header" /> </ScrollView>
sumber