Android:多行EditText(文本区域)的垂直对齐

d-m*_*man 231 android multiline vertical-alignment android-edittext

我希望文本区域的高度有5行.我使用以下代码.

<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:singleLine="false"
    android:lines="5"
    android:layout_marginLeft="10dip"
    android:layout_marginRight="10dip" />
Run Code Online (Sandbox Code Playgroud)

文本区域看起来很好,但问题是光标在文本字段的中间闪烁.我希望它在文本字段的第一个字符的第一行闪烁.

Com*_*are 365

使用 android:gravity="top"


Nan*_*l T 94

这类似于CommonsWare的回答,但稍作调整:android:gravity="top|left".完整的代码示例:

<EditText
    android:id="@+id/EditText02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:lines="5"
    android:gravity="top|left"
    android:inputType="textMultiLine"
    android:scrollHorizontally="false" 
/>
Run Code Online (Sandbox Code Playgroud)

  • 除非你知道你可以控制你应用中的所有语言,否则不要使用`top | left`,那里有很多从右到左的语言(http://en.wikipedia.org/wiki/Right-to -left)保持本地化友好 (7认同)
  • @MariusBudin 想必“top|start”是正确的选择? (2认同)

Den*_*rma 19

你可以使用这个Edittext ....这将对你有所帮助.

<EditText
android:id="@+id/EditText02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lines="5"
android:gravity="top|left"
android:inputType="textMultiLine" />
Run Code Online (Sandbox Code Playgroud)


Sam*_*iya 9

用这个:

android:gravity="top"
Run Code Online (Sandbox Code Playgroud)

要么

android:gravity="top|left"
Run Code Online (Sandbox Code Playgroud)


Asa*_*Rao 6

<EditText android:id="@+id/EditText02" android:layout_width="120dp"
    android:layout_height="wrap_content" android:lines="5" android:layout_centerInParent="true"
    android:gravity="top|left" android:inputType="textMultiLine"
    android:scrollHorizontally="false" android:minWidth="10.0dip"
    android:maxWidth="180dip" />
Run Code Online (Sandbox Code Playgroud)

它会工作