Yanıtlar:
Varsayılan olarak EditText
, Android'deki tüm widget'lar çok satırlıdır.
İşte bazı örnek kod:
<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
en azından lines
ve minLines
niteliklerini olumsuzlamak . Ben vardı inputType="phone"
ve satır öznitelikleri hiçbir etkisi yoktu
IndexOutOfBoundsException
şey android:inputType="textMultiLine"
Kullanmayı daha iyi bulabilirsiniz:
<EditText
...
android:inputType="textMultiLine"
/>
Çünkü android:singleLine
kullanımdan kaldırılmıştır.
singleLine
Yanıtlarının kullanımdan kaldırılmış kısmını kaldırdıklarından (uzun zaman önce). Sorunun kendisi ile ilgili olarak, cevaplarının en önemli kısmı budur.
IndexOutOfBoundsException
şey yazar yazmaz neden olur . Çok satırlı şimdi varsayılan.
Bu benim için çalışıyor, aslında şu 2 özellik önemlidir: inputType ve lines . Ayrıca, bir kaydırma çubuğuna ihtiyacınız olabilir, aşağıdaki kod nasıl yapılacağını gösterir:
<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" />
Aşağıdaki kod pasajını bu şekilde uyguladım ve iyi çalışıyor. Umarım bu birine yardımcı olur.
<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"
/>
Şerefe! ...Teşekkürler.
Bunu deneyin, bu satırları düzenleme metin görünümünüze ekleyin, benimkini ekleyeceğim. anladığından emin ol
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"/>
ve java sınıfınızda aşağıdaki gibi bu düzenleme metnine tıklama listeleyici yapmak, benimkine göre değiştireceğim, chane isimleri.
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;
}
});
bu benim için iyi çalışıyor
EditText, singleLine özelliğine sahiptir. XML'de veya setSingleLine (false); http://developer.android.com/reference/android/widget/TextView.html#setSingleLine%28%29
Bunların hepsi güzel ancak düzenleme metninizi üst düzey kaydırma görünümünde bulundurmanız durumunda çalışmaz :) Belki de en yaygın örnek, görünür alanın ötesine geçecek kadar çok öğeye sahip olan "Ayarlar" görünümüdür. Bu durumda, ayarları kaydırılabilir yapmak için hepsini kaydırma görünümüne koyarsınız. Ayarlarınızda çok satırlı kaydırılabilir düzenleme metnine ihtiyacınız olması durumunda kaydırma çalışmaz.
<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
/>
Temada önceden atanmış satır sayısını devre dışı bırakmak için xml özelliğini kullanın: android:lines="@null"
Bunu http://www.pcsalt.com/android/edittext-with-single-line-line-wrapping-and-done-action-in-android/ adresinden öğrendim , ancak web sitesini kendim sevmiyorum. Çok satırlı AMA, giriş düğmesini bir posta düğmesi olarak tutmak istiyorsanız, liste görünümünün "yatay kaydırma" özelliğini yanlış olarak ayarlayın.
android:scrollHorizontally="false"
Xml'de çalışmazsa, programlı olarak yapmak garip bir şekilde çalışır.
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" />
ve "\ n" etkinliğini kaldırmak için kullanıcı sonraki satıra basın
String editStr= edittxtAddress.getText().toString().trim();
MyString= editStr.replaceAll("\n"," ");
Bazı biri kullanıyorsa AppCompatEditText o zaman ayarlamanız gerekir InputType = "textMultiLine" buradan kopyalayabilirsiniz koddur
<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"
/>
arka plan için
<?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>