Izinkan multi-baris dalam tampilan EditText di Android?


Jawaban:


1176

Secara default semua EditTextwidget 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 -->
/>

6
Apakah ada cara untuk mengatur inputType ke textMultiLine dan imeOptions to actionSend? Saya melihat tombol Enter pada keyboard S4 alih-alih mengirim ketika saya mengatur inputType ke textMultiLine dan imeOptions untuk actionSend.
user484691

1
Untuk "textMultiLine and imeOptions" lihat stackoverflow.com/questions/5014219/…
TOMKA

2
Satu hal yang perlu diperhatikan, menambahkan sebuah inputTypemeniadakan setidaknya linesdan minLinesatribut. Aku punya inputType="phone"dan atribut garis tidak berpengaruh
ono

2
Jangan gunakan ini. Penyebab IndexOutOfBoundsExceptiondan segera setelah Anda mengetik sesuatu karenaandroid:inputType="textMultiLine"
Chisko

jika menggunakan AppCompactTextView perlu baris ini android: inputType = "textMultiLine"
sourav pandit

260

Anda mungkin merasa lebih baik menggunakan:

<EditText 
...
android:inputType="textMultiLine"
/>

Ini karena android:singleLinesudah usang.


Jawaban Sharduls tentu harus bekerja pada Apis modern. Karena mereka menghapus bagian yang sudah usang singleLinedari jawaban mereka (dahulu kala). Mengenai pertanyaan itu sendiri, itu adalah bagian terpenting dari jawaban mereka.
Knossos

Jangan gunakan ini. Penyebab IndexOutOfBoundsExceptiondan segera setelah Anda mengetik sesuatu. Multiline sekarang adalah default.
Chisko

@Chisko Atribut XML tidak akan menyebabkan IndexOutOfBoundsException. Saya tidak ingat kapan inputType standar diubah (bahkan?), Tetapi mungkin yang terbaik adalah menyimpannya untuk alasan kompatibilitas ke belakang.
Knossos

1
@ Kossos juga, seaneh ini bagi Anda itu untuk saya. Saya benar-benar menyalin-menyisipkan kode dan jatuh setiap kali dengan setiap kemungkinan kombinasi beberapa parameter sampai saya menghapusnya. Sosok pergi.
Chisko

42

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" />

20

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.


11

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


Terimakasih! Ini adalah bagaimana saya membuat teks edit yang dapat digulir dalam tampilan yang dapat digulir.
Esdras Lopez


5

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.


5
 <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
           /> 

4

Untuk menonaktifkan jumlah baris yang sebelumnya ditetapkan dalam tema, gunakan atribut xml: android:lines="@null"


4
android:inputType="textMultiLine"

Baris kode ini berfungsi untuk saya. Tambahkan kode yang Anda edit di file xml Anda.


3

Cukup tambahkan ini android:inputType="textMultiLine" dalam file XML pada bidang yang relevan.



1
<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"," ");

1

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>

0

Hal lain yang rapi untuk dilakukan adalah menggunakannya android:minHeightbersama 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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.