在Android的EditText视图中允许多行?

问题描述 投票:419回答:13

如何在Android qazxsw poi视图中允许多行?

android android-edittext multiline
13个回答
1074
投票

默认情况下,Android中的所有EditText小部件都是多行的。

以下是一些示例代码:

EditText

1
投票

我是从 <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 /> 那里学到的,虽然我不喜欢这个网站。如果您想要多行但是想要将输入按钮保留为发布按钮,请将listview的“水平滚动”设置为false。

http://www.pcsalt.com/android/edittext-with-single-line-line-wrapping-and-done-action-in-android/

如果它在xml中不起作用,那么以编程方式执行它会很奇怪。

android:scrollHorizontally="false"


1
投票
listView.setHorizontallyScrolling(false);

并在活动中删除“\ n”是用户按下一行

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

1
投票
String editStr= edittxtAddress.getText().toString().trim();

 MyString= editStr.replaceAll("\n"," ");

这段代码对我有用。在xml文件中添加您编辑文本的代码。


0
投票

另一个巧妙的事情是使用android:inputType="textMultiLine" android:minHeight。这样,您可以在编辑为空时设置编辑的大小,当用户输入内容时,它会根据用户输入的内容(包括多行)进行拉伸。


222
投票

你可能会发现它更好用:

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

这是因为<EditText ... android:inputType="textMultiLine" /> 已被弃用。


40
投票

这对我有用,实际上这两个属性很重要:inputType和lines。此外,您可能需要一个滚动条,下面的代码显示了如何制作一个:

android:singleLine

14
投票

这就是我应用下面的代码片段并且它工作正常的方式。希望,这会对某人有所帮助。

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

干杯! ...谢谢。


10
投票

试试这个,将这些行添加到编辑文本视图中,我将添加我的。确保你理解它

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

并在你的java类上使用onclick监听这个编辑文本,如下所示,我将根据你的名字添加我的chane名称。

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

这对我来说很好


9
投票

EditText具有singleLine属性。您可以在XML中设置或通过调用setSingleLine(false); 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; } });


5
投票

所有这些都很好,但是如果您在上层滚动视图中有您的edittext,则无法工作:)也许最常见的例子是“设置”视图,它有很多项目,超出了可见区域。在这种情况下,您将它们全部放入滚动视图以使设置可滚动。如果您在设置中需要多行可滚动编辑文本,则其滚动将不起作用。


4
投票

要禁用先前在主题使用xml属性中指定的行数:http://developer.android.com/reference/android/widget/TextView.html#setSingleLine%28%29


4
投票
android:lines="@null"
© www.soinside.com 2019 - 2024. All rights reserved.