EditText TextInputLayout 提示文本对齐:有没有办法像 EditText 视图的 textAlignment 属性一样对齐提示文本

问题描述 投票:0回答:5

我有一个固定高度的输入文本字段(TextInputLayout 的 EditText)。 我想将提示文本对齐到视图的左上角。

问题:提示文本始终显示在center_verticle,但我想将其显示在左上角。

        <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/aboutWrapper"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="About Sponsor">
            <EditText
                android:id="@+id/et_about_sponsor"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:minHeight="250dp"
                android:textAlignment="viewStart"
                android:layout_centerHorizontal="true"
                android:gravity="start|top"
                android:imeOptions="actionDone"
                android:inputType="textMultiLine|textCapSentences"
                android:textColor="@color/white"
                android:textColorHint="@color/white"
                android:textSize="@dimen/font_medium" /> 
         </com.google.android.material.textfield.TextInputLayout>
android android-edittext android-textinputlayout hint
5个回答
7
投票

根据这个 github 问题,您需要将 android:minLines 设置为至少 2 以及 android:gravity="top"

<com.google.android.material.textfield.TextInputLayout
 android:id="@+id/txtInput"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:hint="Hint">

 <com.google.android.material.textfield.TextInputEditText
     android:id="@+id/et_content"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:gravity="top"
     **android:minLines="2"**
      />
</com.google.android.material.textfield.TextInputLayout>

0
投票

您可以使用:

        <com.google.android.material.textfield.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="About Sponsor">

            <com.google.android.material.textfield.TextInputEditText
                android:minHeight="250dp"
                android:textAlignment="viewStart"
                android:layout_centerHorizontal="true"
                android:gravity="start|top"
                android:imeOptions="actionDone"
                android:inputType="textMultiLine|textCapSentences"
                .../>
        </com.google.android.material.textfield.TextInputLayout>


0
投票

尝试将

style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
样式添加到
TextInputLayout

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/aboutWrapper"
    android:layout_width="match_parent"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_height="wrap_content"
    android:hint="About Sponsor">
    <EditText
        android:id="@+id/et_about_sponsor"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="250dp"
        android:textAlignment="viewStart"
        android:layout_centerHorizontal="true"
        android:gravity="start|top"
        android:imeOptions="actionDone"
        android:inputType="textMultiLine|textCapSentences"
        android:textColor="@color/white"
        android:textColorHint="@color/white"
        android:textSize="@dimen/font_medium" />
</com.google.android.material.textfield.TextInputLayout>

0
投票

你可以使用

<EditText
            android:id="@+id/editTextTextPersonName5"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:ems="10"
            android:hint="Message"
            android:gravity="left|top"
            android:inputType="textAutoComplete"
            android:textAlignment="textStart" />

这里

gravity
属性将有助于将文本对齐到您想要的位置。 您可以参考这里


0
投票

试试这个 android:gravity="center"

<com.google.android.material.textfield.TextInputLayout
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:hint="Enter your email"
        android:inputType="textEmailAddress" />

</com.google.android.material.textfield.TextInputLayout>
© www.soinside.com 2019 - 2024. All rights reserved.