Var*_*ind 9 android textview android-textattributes android-textinputlayout
我有一个非常具体的问题,当TextInputLayout没有聚焦时,它会改变TextInputLayout文本框的轮廓.我似乎无法找到一个属性来更改我的"未聚焦"文本框边框的颜色.
这是我正在尝试做的一个视觉示例:
此(文本框)的颜色:边框不是白色.目前它没有集中精力.点击它后,它变成白色:
我不知道我需要改变什么,似乎没有一个属性可以改变它.
我也使用材料设计文本输入布局样式,虽然我不知道这是否会影响它.
这是我的文本框的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...>
Run Code Online (Sandbox Code Playgroud)
以下是我用于此的样式:
<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>
Run Code Online (Sandbox Code Playgroud)
谢谢,欢迎任何帮助或建议!
Amj*_*jad 31
如果要在未聚焦模式下设置轮廓框的颜色而不是默认的黑色,则必须在colors.xml文件中添加此行,该行将覆盖轮廓框的默认颜色.
按原样复制此行.你可以改变你想要的颜色.
<color name="mtrl_textinput_default_box_stroke_color">#fff</color>
Run Code Online (Sandbox Code Playgroud)
到目前为止它可以工作,为了更好地控制TextInputLayout,你可以在styles.xml中添加这个样式
<style name="TextInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
<item name="boxStrokeColor">#fff</item>
<item name="boxStrokeWidth">2dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后将主题添加到TextInputLayout
android:theme="@style/TextInputLayoutStyle"
Run Code Online (Sandbox Code Playgroud)
Gab*_*tti 29
使用材料组件库只需使用该boxStrokeColor属性。
它可以与选择器一起使用。
只需使用类似的东西:
<com.google.android.material.textfield.TextInputLayout
app:boxStrokeColor="@color/text_input_layout_stroke_color"
..>
Run Code Online (Sandbox Code Playgroud)
和:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:alpha="..." android:color="@color/...." android:state_focused="true"/>
<item android:alpha="..." android:color="@color/...." android:state_hovered="true"/>
<item android:alpha="..." android:color="@color/...." android:state_enabled="false"/>
<item android:alpha="..." android:color="@color/...."/> <!-- unfocused -->
</selector>
Run Code Online (Sandbox Code Playgroud)
dil*_*lix 11
Amjad 的回答是正确的,但是从1.1.0-alpha02(甚至可能是 alpha01)开始,在解决此问题后,可以使用相同的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>
Run Code Online (Sandbox Code Playgroud)
用法:
...
app:boxStrokeColor="@color/text_input_layout_stroke_color"
...
Run Code Online (Sandbox Code Playgroud)
app:boxStrokeColor="#000000"
app:boxStrokeWidthFocused="0.5dp"
app:boxStrokeWidth="0.5dp"
Run Code Online (Sandbox Code Playgroud)
这将使框颜色在它聚焦的事件中保持不变!
| 归档时间: |
|
| 查看次数: |
5409 次 |
| 最近记录: |