android редактировать текст как начать печатать в левом верхнем углу?

у меня есть это EditText

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textMultiLine"
        android:lines="5"
        android:singleLine="false"
        android:text="@string/app_name" />

</LinearLayout>

моя проблема в том, что ввод начинается с середины EditText.

мой вопрос в том, как начать печатать в левом верхнем углу EditText?

3 ответов


попробовать android:gravity="top" таким образом, ваш код будет:

<EditText
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:gravity="top"
     android:inputType="textMultiLine"
     android:lines="5"
     android:singleLine="false"
     android:text="@string/app_name" />

Я думаю, что это должно работать.

<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="textMultiLine"
    android:lines="5"
    android:singleLine="false"
    android:gravity="top|left"
    android:text="@string/app_name" />

top|left будет работать, но для справа налево языков android:gravity="top|start" лучше.

фрагмент описания предупреждения в IDE:

использование гравитации#влево и гравитации#вправо может привести к проблемам, когда макет отображается в местах, где текст течет справа налево. Использовать Гравитация#начало и гравитация#конец вместо этого. Аналогично, в XML gravity и атрибуты layout_gravity, используйте start, а не left.