android - 编辑 MultiAutocompleteTextView 样式

标签 android android-edittext textview android-styles

类似问题

Apply a style on MultiAutoCompleteTextView :问题是由于 OP 打算覆盖样式未声明的某些属性。这不是我的问题。

android: MultiAutoCompleteTextView style like gmail :在这里,OP 想要设置与 GMail 相同的样式,答案显示 2 API。此外,没有显示 XML 代码。因此,这与我的问题和期望有很大不同。

问题

我的ma​​terial MultiAutoCompleteTextView 样式似乎没有应用。更准确地说,我只是想让我的( Material !)小部件的底部默认线变成黄色,高度为 1px。默认情况下,它是灰色的,高度可能为 3 像素,如下所示。

enter image description here (这是在我的 Activity fragment 开始时显示的,这是此 MultiAutoCompleteTextView 的默认 Material 样式)

我尝试过的

很多东西! :-)

  1. 我在应用的主题中定义了一个样式来覆盖 android:autoCompleteTextViewStyle(注意:android:autoCompleteTextViewStyle 不存在 )

  2. 在覆盖中,我尝试a)设置颜色 - 背景色、颜色、强调色、colorControlNormal、colorFocusedHighlight 等等等等 - 和 b) 设置背景,在 XML 文件中定义。 没有任何效果。

来源

应用的主题

<style name="" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:autoCompleteTextViewStyle">@style/my_autoCompleteTextViewStyle</item>
    </style>

@style/my_autoCompleteTextViewStyle

<style name="my_autoCompleteTextViewStyle" parent="android:Widget.Material.Light.AutoCompleteTextView">
    <item name="android:background">@drawable/background_autocompletetextview</item>

    <item name="android:color">@color/colorRichYellow</item>
    <item name="android:borderlessButtonStyle">@color/colorRichYellow</item>
    <item name="android:colorAccent">@color/colorRichYellow</item>
    <item name="android:colorControlHighlight">@color/colorRichYellow</item>
    <item name="android:colorActivatedHighlight">@color/colorRichYellow</item>
    <item name="android:colorControlActivated">@color/colorRichYellow</item>
    <item name="android:colorControlNormal">@color/colorRichYellow</item>
    <item name="android:colorBackground">@color/colorRichYellow</item>
    <item name="android:colorFocusedHighlight">@color/colorRichYellow</item>
</style>

@drawable/background_autocompletetextview

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">
    <stroke android:width="1dp" android:color="@color/colorRichYellow" />
</shape>

我的问题

我不明白为什么它不起作用。我已经为 spinner(选择框)做了这件事,并且它完美地工作......我怎样才能让它适用于我的 Material MultiAutoCompleteTextView

最佳答案

调度器 我认为您需要将这一行添加到您的 MultiAutoCompleteTextView

首先,为您的 MultiAutoCompleteTextView 创建一个名为“underline.xml”的背景资源

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:bottom="1dp"
        android:left="-2dp"
        android:right="-2dp"
        android:top="-2dp">
        <shape android:shape="rectangle" >
            <stroke
                android:width="1dp"
                android:color="@color/colorRichYellow" />
            <solid android:color="#00FFFFFF" />
            <padding
                android:bottom="5dp"
                android:left="5dp"
                android:right="5dp"
                android:top="5dp" />
        </shape>
    </item>
</layer-list>

之后,只需将您的 MultiAutoCompleteTextView 项目设置为:

android:background="@drawable/underline"

我们需要这样做,因为您也想调整线条的大小。如果你只需要改变底线的颜色,你可以简单地设置

app:backgroundTint="@color/colorRichYellow"

避免创建underline.xml 文件并且没有设置android:background 字段

更新(如评论中所述)

如果你想使用你的样式,请将这行添加到你的样式文件中:

<style name="my_autoCompleteTextViewStyle" parent="android:Widget.Material.Light.AutoCompleteTextView">
    ....
    <item name="android:background">@drawable/underline</item>
    ....
</style>

这样,您可以通过设置样式对所有 ACEditText 产生这种效果!

关于android - 编辑 MultiAutocompleteTextView 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52576381/

相关文章:

java - 在没有 Google Cloud 的情况下同步 Android 设备

java - 创建自定义 View 并重用同一 View

java - 如何使用 PasswordToggleEnabled 将 DrawableLeft 设置为 EditText

java - Android:CustomView 中的 EditText 在触摸时未按预期运行

android - 如何为 TextView 中的文本更改设置动画?

android - 选择textview时如何显示弹出窗口而不是CAB?

java - 从 Google Play 服务 jar 文件中剥离一些文件是否有问题?

android - 如何录制 Android 模拟器运行的视频?

Android 编辑文本 : getting entered text

java - 基线对齐的TextView裁剪多行文本的底行