在 MaterialToolbar 中更改 Searchview 的文本颜色不起作用
Changing textcolor of Searchview inside MaterialToolbar not working
我有一个 material.appbar 布局,我在菜单中有一个搜索视图。我正在尝试更改搜索视图中文本的颜色,但它对我不起作用。我已经尝试了这些 posts 中提到的现有解决方案,但它们对我不起作用。有帮助吗?
我的代码:
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppBarOverlay">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/topAppBar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:title="@string/home_page_title"
app:subtitle="@string/home_page_subtitle"
app:menu="@menu/top_app_bar"
app:navigationIcon="@drawable/ic_baseline_menu"
style="@style/searchview"
/>
</com.google.android.material.appbar.AppBarLayout>
<?xml version="1.0" encoding="utf-8"?>
<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:icon="@drawable/search"
android:title="@string/search"
android:contentDescription="@string/content_description_search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="ifRoom" />
</menu>
<style name="searchview" parent="Widget.MaterialComponents.Toolbar.Primary">
<item name="android:textColorPrimary">@android:color/white</item>
<item name="android:textColorSecondary">@android:color/white</item>
<item name="android:editTextColor">@android:color/white</item>
<item name="android:textSize">28sp</item>
</style>
您可以使用:
<com.google.android.material.appbar.MaterialToolbar
android:theme="@style/ThemeOverlayToobar"
...>
与:
<style name="ThemeOverlayToobar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
<item name="android:editTextColor">@color/....</item>
</style>
如果您还想更改提示文本颜色:
<style name="ThemeOverlayToobar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
<item name="android:editTextColor">@color/...</item>
<item name="android:textColorHint">@color/...</item>
</style>
我有一个 material.appbar 布局,我在菜单中有一个搜索视图。我正在尝试更改搜索视图中文本的颜色,但它对我不起作用。我已经尝试了这些 posts 中提到的现有解决方案,但它们对我不起作用。有帮助吗?
我的代码:
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppBarOverlay">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/topAppBar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:title="@string/home_page_title"
app:subtitle="@string/home_page_subtitle"
app:menu="@menu/top_app_bar"
app:navigationIcon="@drawable/ic_baseline_menu"
style="@style/searchview"
/>
</com.google.android.material.appbar.AppBarLayout>
<?xml version="1.0" encoding="utf-8"?>
<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:icon="@drawable/search"
android:title="@string/search"
android:contentDescription="@string/content_description_search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="ifRoom" />
</menu>
<style name="searchview" parent="Widget.MaterialComponents.Toolbar.Primary">
<item name="android:textColorPrimary">@android:color/white</item>
<item name="android:textColorSecondary">@android:color/white</item>
<item name="android:editTextColor">@android:color/white</item>
<item name="android:textSize">28sp</item>
</style>
您可以使用:
<com.google.android.material.appbar.MaterialToolbar
android:theme="@style/ThemeOverlayToobar"
...>
与:
<style name="ThemeOverlayToobar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
<item name="android:editTextColor">@color/....</item>
</style>
如果您还想更改提示文本颜色:
<style name="ThemeOverlayToobar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
<item name="android:editTextColor">@color/...</item>
<item name="android:textColorHint">@color/...</item>
</style>