TextInputLayoutのテキストボックスのアウトラインを変更すると、焦点が合っていないときに非常に具体的な問題が発生します。 「焦点が合っていない」テキストボックスの境界線の色を変更する属性が見つからないようです。
ここに私がやろうとしていることの視覚的な例があります:
This(textbox):borderの色は白ではありません。現在は焦点が合っていません。クリックすると、白に変わります。
何を変更する必要があるのかわかりません。変更する属性があるとは思えません。
マテリアルデザインのテキスト入力レイアウトスタイルも使用していますが、それが影響するかどうかはわかりません。
テキストボックスのxmlコードは次のとおりです。
<other layouts ... >
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="70dp"
Android:layout_gravity="bottom"
Android:layout_margin="5dp"
Android:background="@drawable/item_recycler_view">
<Android.support.design.widget.TextInputLayout
Android:id="@+id/dialog_text_input_layout"
style="@style/Widget.AppTheme.TextInputLayoutList"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="Quick Add..."
Android:textColorHint="@color/colorWhite"
app:boxStrokeColor="@color/colorWhite"
app:errorEnabled="true"
>
<Android.support.design.widget.TextInputEditText
Android:id="@+id/dialog_edit_text"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:inputType="text"
Android:maxLines="1"
Android:textColor="@color/colorWhite"
Android:textSize="14sp" />
</Android.support.design.widget.TextInputLayout>
</RelativeLayout>
</other layouts...>
そして、私がこれに使用するスタイルは次のとおりです。
<style name="TextAppearance.AppTheme.TextInputLayout.HintTextAlt" parent="TextAppearance.MaterialComponents.Subtitle2">
<item name="Android:textColor">@color/colorWhite</item>
</style>
<style name="Widget.AppTheme.TextInputLayoutList" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="hintTextAppearance">@style/TextAppearance.AppTheme.TextInputLayout.HintTextAlt</item>
<item name="boxStrokeColor">@color/colorWhite</item>
<item name="boxCornerRadiusBottomEnd">5dp</item>
<item name="boxCornerRadiusBottomStart">5dp</item>
<item name="boxCornerRadiusTopEnd">5dp</item>
<item name="boxCornerRadiusTopStart">5dp</item>
<item name="Android:layout_margin">5dp</item>
</style>
ありがとう、どんな助けや提案も大歓迎です!
デフォルトの黒ではなく、非フォーカスモードでアウトラインボックスの色を設定する場合は、アウトラインボックスのデフォルトの色を上書きするcolors.xml
ファイルにこの行を追加する必要があります。
この行をそのままコピーします。好きな色に変更できます。
<color name="mtrl_textinput_default_box_stroke_color">#fff</color>
これまでは動作しますが、TextInputLayoutをさらに制御するには、styles.xmlにこのスタイルを追加します。
<style name="TextInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
<item name="boxStrokeColor">#fff</item>
<item name="boxStrokeWidth">2dp</item>
</style>
次に、TextInputLayoutにテーマを追加します
Android:theme="@style/TextInputLayoutStyle"
Amjadからの回答 は正しかったが、この後 1.1.0-alpha02 (おそらくalpha01)から始まる issue は解決され、色を定義することが可能同じboxStrokeColor
属性を使用したカラー状態リストで、たとえばlibでの実行方法:
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:color="?attr/colorPrimary" Android:state_focused="true"/>
<item Android:alpha="0.87" Android:color="?attr/colorOnSurface" Android:state_hovered="true"/>
<item Android:alpha="0.12" Android:color="?attr/colorOnSurface" Android:state_enabled="false"/>
<item Android:alpha="0.38" Android:color="?attr/colorOnSurface"/>
</selector>