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

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

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

这是一些示例代码:

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

这是因为android:singleLine已被弃用。

这适用于我,实际上这两个属性是重要的: inputType 。 此外,你可能需要一个滚动条,下面的代码显示了如何做一个:

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

这是我用的方式,它的工作也很好。 希望这会帮助别人。

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

干杯! …谢谢。

EditText具有singleLine属性。 你可以在XML中设置或者通过调用setSingleLine(false); http://developer.android.com/reference/android/widget/TextView.html#setSingleLine%28%29

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

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

并在你的java类上点击listner到这个编辑文本如下,我会根据你的添加我的,chane的名字。

 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; } }); 

这对我来说工作得很好

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

要禁用以前在主题中使用xml属性指定的行数: android:lines="@null"

我从http://www.pcsalt.com/android/edittext-with-single-line-line-wrapping-and-done-action-in-android/了解到了这一点,尽pipe我自己并不喜欢这个网站。; 如果你想要多行,但要保留inputbutton作为后button,将列表视图的“水平滚动”设置为false。

android:scrollHorizontally="false"

如果它在xml中不起作用,那么以编程方式进行这种工作是很奇怪的。

listView.setHorizontallyScrolling(false);

另一个整洁的事情是使用android:minHeight以及android:layout_height="wrap_content" 。 这样,您可以在编辑空白时设置编辑的大小,以及当用户input内容时,它会根据用户input的内容(包括多行)进行延伸。