问题描述
我有一个固定高度的inputText字段(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>
解决方法
根据此github issue,您需要将 android:minLines 以及 android:gravity="top" 设置为至少 2。
<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>
,
您可以使用:
<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>
,
尝试将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>
,
您可以使用
<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
属性将帮助您将文本对齐到所需的任何位置。
您可以参考Here