【问题标题】:Update androidx SearchView text color in toolbar更新工具栏中的 androidx SearchView 文本颜色
【发布时间】:2021-03-01 23:51:17
【问题描述】:

我有很多问题试图弄清楚如何通过编程方式或在 xml 主题中更改我的 androidx searchview 上的文本。下面是我的相关代码。如何将文本从黑色更新为白色,使其像屏幕截图一样显示在黑色背景上?

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/search"
        android:title="Search"
        android:icon="@drawable/search"
        app:showAsAction="collapseActionView|ifRoom"
        app:actionViewClass="com.exposure.controls.ExposureSearchView" />
</menu>

public class ExposureSearchView extends SearchView {

    public ExposureSearchView(Context context) {
        super(context);
        //((ImageView) findViewById(androidx.appcompat.R.id.search_button)).setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.search));
    }
    
    public boolean isDisabled() {
        return disabled;
    }

    public void setDisabled(boolean disabled) {
        this.disabled = disabled;
    }

    private boolean disabled;
    private MenuItem menuItem;
    private boolean expanded;

    public void storeMenuItem(MenuItem menuItem) {
        this.menuItem = menuItem;
    }
    
    public MenuItem getMenuItem() {
        return this.menuItem;
    }
    
    @Override
    public void onActionViewExpanded() {
        super.onActionViewExpanded();
        expanded = true;
    }

    @Override
    public void onActionViewCollapsed() {
        super.onActionViewCollapsed();
        expanded = false;
    }

    public boolean isExpanded() {
        return expanded;
    }
}

【问题讨论】:

    标签: android menuitem androidx searchview


    【解决方案1】:

    如果您使用片段或活动,您可以将以下代码添加到您的onCreateOptionsMenu ()

    EditText txtSearch = (searchView.findViewById(androidx.appcompat.R.id.search_src_text));
    txtSearch.setTextColor(Color.WHITE);
    

    【讨论】:

    • 我在多个地方做了,没有任何变化。
    • 对我来说它适用于onCreateOptionsMenu()method
    • 那行得通,如果你可以更新你的答案,那么这将表明它是在一个碎片上完成的。
    • 是的,我也将它移到了活动中,所以它也可以在那里工作。
    • 它在片段和活动中都有效,但我将它移到了 onCreateOptionsMenu 的活动中。
    【解决方案2】:

    你应该主题颜色,喜欢

    ?attr/colorOnSurface
    

    ,它会满足你的需要。

    【讨论】:

    • 不知道这是什么意思。
    • 现在我身边没有电脑,无法很好的表达我的意思。但我认为我的想法可以解决你的问题。一般来说,您的 searchView 在 Toolbar 中,因此您可以并且应该修改工具栏或其父级。使用主题的方式。例如,在您的工具栏中使用 android:theme="myTheme.style"。在您的 myTheme 文件中,使用 ?attr/colorOnSurface
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多