Android 文本输入文本,如何将提示与上边距对齐
如果我使用上一个材质库版本com.google.android.material:material:1.2.0-alpha02,我会遇到一些问题,无法处理TextInputItemText和他的提示消息。。我设置了5行可滚动文本输入文本,我想显示提示消息对齐到文本输入的上边距。布局编辑器显示在正确的位置,但当我运行应用程序时,位置是垂直居中的。为什么? 相反,我不会在com.google.android.material:material:1.1.0-beta02上遇到这个问题 这是我的布局:Android 文本输入文本,如何将提示与上边距对齐,android,android-layout,android-textinputlayout,material-components-android,android-textinputedittext,Android,Android Layout,Android Textinputlayout,Material Components Android,Android Textinputedittext,如果我使用上一个材质库版本com.google.android.material:material:1.2.0-alpha02,我会遇到一些问题,无法处理TextInputItemText和他的提示消息。。我设置了5行可滚动文本输入文本,我想显示提示消息对齐到文本输入的上边距。布局编辑器显示在正确的位置,但当我运行应用程序时,位置是垂直居中的。为什么? 相反,我不会在com.google.android.material:material:1.1.0-beta02上遇到这个问题 这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
android:id="@+id/sendMailContainer"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/popupTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:text="@string/sendBusinessCard"
android:textColor="@android:color/black"
android:textSize="22sp" />
<TextView
android:id="@+id/subTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/sendBusinessCard"
android:textColor="@android:color/black"
android:textSize="18sp"
android:layout_below="@+id/popupTitle"
android:layout_marginEnd="40dp"
android:layout_marginStart="40dp"
android:layout_marginTop="20dp"/>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/noteMessageContainer"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/subTitle"
android:layout_marginEnd="40dp"
android:layout_marginStart="40dp"
android:layout_marginTop="10dp">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/noteMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/emailText"
android:inputType="text|textMultiLine|textCapSentences"
android:textColor="@android:color/black"
android:textColorHint="@color/gray9B"
android:textSize="16sp"
android:isScrollContainer="true"
android:scrollbars="vertical"
android:textIsSelectable="true"
android:minLines="5"
android:maxLines="5"
android:gravity="top"/>
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/notePopupLeftButton"
android:layout_width="180dp"
android:layout_height="35dp"
android:layout_alignParentStart="true"
android:layout_below="@+id/noteMessageContainer"
android:layout_marginBottom="20dp"
android:layout_marginStart="20dp"
android:layout_marginTop="40dp"
android:background="#FF515151"
android:text="@string/Cancel"
android:textAllCaps="true"
android:textColor="@android:color/white"
android:textSize="16sp"
android:textStyle="bold" />
<Button
android:id="@+id/notePopupRightButton"
android:layout_width="180dp"
android:layout_height="35dp"
android:layout_alignParentEnd="true"
android:layout_below="@+id/noteMessageContainer"
android:layout_marginBottom="20dp"
android:layout_marginEnd="20dp"
android:layout_marginTop="40dp"
android:background="#FF515151"
android:text="@string/Send"
android:textAllCaps="true"
android:textColor="@android:color/white"
android:textSize="16sp"
android:textStyle="bold" />
</RelativeLayout>
</ScrollView>
这是两个屏幕截图,一个布局编辑器的提示位置正确,另一个是应用程序屏幕截图:
在此处输入您可以使用的代码
android:gravity="top|start"
属性,它将充当容器的底层控制属性,并将提示带到左上角。将android:gravity=“top | start”添加到布局XML文件中的EditText中。在EditText/TextInputText中添加此代码:
android:gravity="top|start"
材质:1.2.0-alpha02,我尝试了android:gravity=“top | start”,但没有成功。材质:1.2.0-alpha01,安卓:gravity=“top”足以让它工作。我不确定会发生什么,它应该与版本
1.2.0-alpha02
:[TextInputLayout
]引入的这一点相关,添加了对折叠标签位置的支持,通过编辑文本重力来确定,例如“水平中心”。@GabrieleMariotti您认为这是一个错误还是一种功能?o。O@aeroxr1我不确定。在大多数情况下,TextInputLayout只使用一行,并不影响这种情况。在您的案例中,只要遵循材料指南,它就应该垂直居中。@GabrieleMariotti on material Guidence写道,我们应该为多行编辑文本使用文本区域。但是,在不使用TextInputItemText的情况下,如何创建材质设计文本区域?你试过1.2.0-alpha02吗?你试过1.2.0-alpha02吗?