web-dev-qa-db-ja.com

MaterialComponents.TextInputLayout.OutlinedBox正しく動作しないboxBackgroundColor

素材を使用しています。背景にTextInputLayoutの色を使用しますが、以下のようなものです!ヒントの背景は変更されません。スタイルを使用し、変更を加えたいのですが、機能しませんでした。レイアウト自体で、もう一度変更を適用しようとしました!この問題を解決する方法は?

[〜#〜]ノート[〜#〜]

ラベルのユーザー名の背景がtransparentではなく、それcovers一部のTextInputEditText

enter image description here

build.gradle

implementation 'com.google.Android.material:material:1.1.0'

スタイル

 <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="textAppearanceSubtitle1">@style/TextAppearance.App.Subtitle1</item>
        <item name="textAppearanceCaption">@style/TextAppearance.App.Caption</item>
        <item name="shapeAppearanceSmallComponent">@style/ShapeAppearance.App.SmallComponent</item>
    </style>

    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.MaterialComponents.Dark.ActionBar"/>

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.MaterialComponents.Light"/>


    <style name="TextAppearance.App.Subtitle1" parent="TextAppearance.MaterialComponents.Subtitle1">
        <item name="colorControlActivated">@color/white</item>
        <item name="Android:colorControlActivated">@color/white</item>
    </style>

    <style name="TextAppearance.App.Caption" parent="TextAppearance.MaterialComponents.Caption">
        <item name="Android:textColorTertiary">@color/white</item>
        <item name="Android:textColorTertiaryInverse">@color/white</item>
        <item name="colorControlActivated">@color/white</item>
        <item name="Android:colorControlActivated">@color/white</item>
    </style>

    <style name="ShapeAppearance.App.SmallComponent" parent="ShapeAppearance.MaterialComponents.SmallComponent">
        <item name="cornerFamily">rounded</item>
        <item name="cornerSize">16dp</item>
        <item name="colorControlActivated">@color/white</item>
        <item name="Android:colorControlActivated">@color/white</item>
    </style>

layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
  xmlns:app="http://schemas.Android.com/apk/res-auto"
  Android:layout_width="match_parent"
  Android:layout_height="match_parent"
  Android:background="@color/gray"
  Android:gravity="center"
  Android:orientation="vertical"
  Android:padding="32dp">

  <com.google.Android.material.textfield.TextInputLayout
    Android:id="@+id/linUsername"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_marginBottom="16dp"
    Android:hint="@string/label_username"
    Android:textColorHint="#AEB0C6"
    app:boxBackgroundColor="#33385E"
    app:boxStrokeColor="@color/red"
    app:endIconDrawable="@drawable/ic_clear_white_24dp"
    app:endIconMode="password_toggle"
    app:endIconTint="#AEB0C6"
    app:hintTextColor="#AEB0C6"
    app:startIconDrawable="@drawable/ic_info_outline_white_24dp"
    app:startIconTint="#AEB0C6">

    <com.google.Android.material.textfield.TextInputEditText
      Android:id="@+id/edtUsername"
      Android:layout_width="match_parent"
      Android:layout_height="wrap_content"
      Android:inputType="textPersonName"
      Android:textColor="@color/white"
      Android:textColorHint="@color/white"
      app:hintTextColor="#AEB0C6" />

  </com.google.Android.material.textfield.TextInputLayout>


  <com.google.Android.material.button.MaterialButton
    Android:id="@+id/btnSelectText"
    Android:layout_width="168dp"
    Android:layout_height="wrap_content"
    Android:layout_marginTop="24dp"
    Android:fontFamily="@font/iran_sans_mobile"
    Android:text="login"
    Android:visibility="visible"
    app:cornerRadius="@dimen/radiusButton" />
</LinearLayout>
3

枠付きのカスタム編集テキストを使用できるため、希望の背景を簡単に設定できます。たとえば、次のコードを試してください:activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:gravity="center"
    Android:orientation="vertical"
    Android:padding="32dp">

    <RelativeLayout
        Android:layout_width="match_parent"
        Android:layout_height="60dp">

        <EditText
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:layout_marginTop="15dp"
            Android:background="@drawable/boarder"
            Android:paddingLeft="5dp"
            Android:text="input"
            app:endIconMode="password_toggle"
            app:endIconTint="#EF0707" />

        <TextView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_marginLeft="10dp"
            Android:layout_marginTop="7dp"
            Android:background="#fff"
            Android:text="Label" />
    </RelativeLayout>

    <com.google.Android.material.button.MaterialButton
        Android:id="@+id/btnSelectText"
        Android:layout_width="168dp"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="24dp"
        Android:text="login"
        Android:visibility="visible"
        app:cornerRadius="10dp" />
</LinearLayout>

boarder.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">

    <stroke
        Android:width="2dp"
        Android:color="#03A6F0" />

    <corners Android:radius="12dp" />
</shape>

こちらもご覧ください: ボーダー付きのカスタム編集テキスト

1
MMG