Android 使用新的prefixText时,如何更改TextInputLayout的提示填充?

Android 使用新的prefixText时,如何更改TextInputLayout的提示填充?,android,android-textinputlayout,material-components,material-components-android,Android,Android Textinputlayout,Material Components,Material Components Android,我曾尝试使用新的prefixText实现TextInputLayout,使用com.google.android.material:material:1.2.0-alpha02。这是一个非常酷的特性,但是当我添加前缀文本时,提示标签会上浮并在前缀之后对齐。这看起来不太好,尤其是如果同一页上有更多的输入字段没有前缀,则浮动标签不会对齐 我的布局代码的相关部分: <LinearLayout android:id="@+id/login_input_fields"

我曾尝试使用新的
prefixText
实现
TextInputLayout
,使用
com.google.android.material:material:1.2.0-alpha02
。这是一个非常酷的特性,但是当我添加前缀文本时,提示标签会上浮并在前缀之后对齐。这看起来不太好,尤其是如果同一页上有更多的输入字段没有前缀,则浮动标签不会对齐

我的布局代码的相关部分:

 <LinearLayout
       android:id="@+id/login_input_fields"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical">

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/login_username_input"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/username_hint"
        app:prefixText="Prefix">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/login_username_edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:singleLine="true" />
    </com.google.android.material.textfield.TextInputLayout>

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/login_password_input"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/default_margin"
        android:imeOptions="actionDone"
        app:endIconMode="password_toggle">

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/password_hint"
            android:inputType="textPassword"
            android:singleLine="true"/>

    </com.google.android.material.textfield.TextInputLayout>
</LinearLayout>

要使用材质组件库,您必须使用a

使用此主题的布局:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
 ...
</style>
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
  ...
</style>

...

使用此主题的布局:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
 ...
</style>
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
  ...
</style>

...

val prefixView=textInputLayout.findViewById

如果您希望用输入文本点亮前缀,我无法用1.2.0-Alpha02重现问题,这是非常奇怪的Gabriele。是否存在其他依赖项或其他影响此的因素。我也在使用1.2.0-alpha02。您是否以编程方式更改重力之类的内容?或者,你有一个自定义的风格,用<代码> TcTyPutsType AtTo在你的应用程序主题中定义吗?现在我试着用空白的活动模板在Android Studio中创建一个全新的项目。在上面添加了布局代码和材质:1.2.0-alpha02,并且即使在预览窗口中也能够复制它(您必须将文本添加到文本输入文本,提示标签才能浮起)好的,我可以复制。这取决于应用程序中使用的主题错误。检查下面的答案。