Jawaban:
Secara default semua EditText
widget di Android multi-baris.
Berikut ini beberapa contoh kode:
<EditText
android:inputType="textMultiLine" <!-- Multiline input -->
android:lines="8" <!-- Total Lines prior display -->
android:minLines="6" <!-- Minimum lines -->
android:gravity="top|left" <!-- Cursor Position -->
android:maxLines="10" <!-- Maximum Lines -->
android:layout_height="wrap_content" <!-- Height determined by content -->
android:layout_width="match_parent" <!-- Fill entire width -->
android:scrollbars="vertical" <!-- Vertical Scroll Bar -->
/>
inputType
meniadakan setidaknya lines
dan minLines
atribut. Aku punya inputType="phone"
dan atribut garis tidak berpengaruh
IndexOutOfBoundsException
dan segera setelah Anda mengetik sesuatu karenaandroid:inputType="textMultiLine"
Anda mungkin merasa lebih baik menggunakan:
<EditText
...
android:inputType="textMultiLine"
/>
Ini karena android:singleLine
sudah usang.
singleLine
dari jawaban mereka (dahulu kala). Mengenai pertanyaan itu sendiri, itu adalah bagian terpenting dari jawaban mereka.
IndexOutOfBoundsException
dan segera setelah Anda mengetik sesuatu. Multiline sekarang adalah default.
Ini berfungsi untuk saya, sebenarnya 2 atribut ini penting: inputType dan baris . Selain itu, Anda mungkin memerlukan bilah gulir, kode di bawah ini menunjukkan cara membuatnya:
<EditText
android:id="@+id/addr_edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top|left"
android:inputType="textEmailAddress|textMultiLine"
android:lines="20"
android:minLines="5"
android:scrollHorizontally="false"
android:scrollbars="vertical" />
Ini adalah bagaimana saya menerapkan potongan kode di bawah ini dan berfungsi dengan baik. Semoga ini bisa membantu seseorang.
<EditText
android:id="@+id/EditText02"
android:gravity="top|left"
android:inputType="textMultiLine"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:lines="5"
android:scrollHorizontally="false"
/>
Bersulang! ...Terima kasih.
Coba ini, tambahkan baris ini ke tampilan edit teks Anda, saya akan menambahkan milik saya. pastikan kamu memahaminya
android:overScrollMode="always"
android:scrollbarStyle="insideInset"
android:scrollbars="vertical"
<EditText
android:inputType="textMultiLine"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText_newprom_description"
android:padding="10dp"
android:lines="5"
android:overScrollMode="always"
android:scrollbarStyle="insideInset"
android:minLines="5"
android:gravity="top|left"
android:scrollbars="vertical"
android:layout_marginBottom="20dp"/>
dan di kelas java Anda buat daftar klik pada teks edit ini sebagai berikut, saya akan menambahkan nama saya, pilih nama sesuai dengan milik Anda.
EditText description;
description = (EditText)findViewById(R.id.editText_newprom_description);
description.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
view.getParent().requestDisallowInterceptTouchEvent(true);
switch (motionEvent.getAction() & MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_UP:
view.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
return false;
}
});
ini berfungsi baik untuk saya
EditText memiliki properti singleLine . Anda dapat mengatur dalam XML atau dengan memanggil setSingleLine (false); http://developer.android.com/reference/android/widget/TextView.html#setSingleLine%28%29
Semua ini bagus tetapi tidak akan berfungsi jika Anda memiliki edittext di dalam tampilan gulir tingkat atas :) Mungkin contoh yang paling umum adalah tampilan "Pengaturan" yang memiliki begitu banyak item sehingga melampaui area yang terlihat. Dalam hal ini Anda menempatkan semuanya dalam tampilan gulir untuk membuat pengaturan dapat digulir. Jika Anda membutuhkan teks edit yang dapat digulir multiline dalam pengaturan Anda, gulirnya tidak akan berfungsi.
<EditText
android:id="@id/editText" //id of editText
android:gravity="start" // Where to start Typing
android:inputType="textMultiLine" // multiline
android:imeOptions="actionDone" // Keyboard done button
android:minLines="5" // Min Line of editText
android:hint="@string/Enter Data" // Hint in editText
android:layout_width="match_parent" //width editText
android:layout_height="wrap_content" //height editText
/>
Untuk menonaktifkan jumlah baris yang sebelumnya ditetapkan dalam tema, gunakan atribut xml: android:lines="@null"
Saya belajar ini dari http://www.pcsalt.com/android/edittext-with-single-line-line-wrapping-and-done-action-in-android/ , meskipun saya sendiri tidak suka situs webnya. Jika Anda ingin multiline TETAPI ingin mempertahankan tombol enter sebagai tombol posting, atur listview "scrolling horizontal" menjadi false.
android:scrollHorizontally="false"
Jika itu tidak bekerja di xml, melakukannya secara program secara aneh bekerja.
listView.setHorizontallyScrolling(false);
<EditText
android:hint="Address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="textMultiLine|textNoSuggestions"
android:id="@+id/edittxtAddress"
android:layout_marginLeft="@dimen/textsize2"
android:textColor="@android:color/white"
android:scrollbars="vertical"
android:minLines="2"
android:textStyle="normal" />
dan di Aktivitas untuk menghapus "\ n" adalah pengguna menekan baris berikutnya
String editStr= edittxtAddress.getText().toString().trim();
MyString= editStr.replaceAll("\n"," ");
jika seseorang menggunakan AppCompatEditText maka Anda perlu mengatur inputType = "textMultiLine" di sini adalah kode yang dapat Anda salin
<androidx.appcompat.widget.AppCompatEditText
android:padding="@dimen/_8sdp"
android:id="@+id/etNote"
android:minLines="6"
android:singleLine="false"
android:lines="8"
android:scrollbars="vertical"
android:background="@drawable/rounded_border"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_25sdp"
android:layout_marginTop="32dp"
android:layout_marginEnd="@dimen/_25sdp"
android:autofillHints=""
android:gravity="start|top"
android:inputType="textMultiLine"
/>
untuk latar belakang
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/_5sdp"/>
<stroke android:width="1dp" android:color="#C8C8C8"/>
</shape>
Hal lain yang rapi untuk dilakukan adalah menggunakannya android:minHeight
bersama android:layout_height="wrap_content"
. Dengan cara ini Anda dapat mengatur ukuran hasil edit ketika itu kosong, dan ketika pengguna memasukkan barang, itu membentang sesuai dengan berapa banyak input pengguna, termasuk beberapa baris.