10

我正在尝试在我的 Android 应用程序中实现 SearchView,但是在扩展它时有一个额外的填充。

SearchView 集成在菜单中,当应用程序启动时,我在工具栏中有一个搜索图标。当我单击该搜索按钮时,SearchView 会展开但有一个额外的填充。

以下是一些照片,以便您了解问题:

这是初始工具栏 初始工具栏

当我单击搜索图标时,这就是我得到的扩展搜索

我找到了一种解决方案,向 SearchView 添加负左填充(-16dp): searchView.setPadding(getResources().getDimensionPixelSize(R.dimen.search_view_minus), 0, 0, 0);

不幸的是,如果我使用此解决方案,工具栏右侧的搜索图标将受到影响(SearchView 不知何故超越了搜索图标)。

这是我的菜单:

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">

    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_search_white_48dp"
        app:showAsAction="always"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:title="Cauta..."/>

</menu>

这是我的工具栏布局:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar_home"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary"
    app:theme="@style/AppTheme.Title"
    app:titleMarginStart="0dp"
    app:navigationIcon="@drawable/ic_menu_white_24dp"
    app:contentInsetStartWithNavigation="0dp"
    app:contentInsetEndWithActions="0dp"
    app:contentInsetStart="0dp"
    app:contentInsetEnd="0dp" />

这是应用于 SearchView 的一些自定义样式:

<style name="searchStyle" parent="Widget.AppCompat.SearchView.ActionBar">
    <item name="queryHint">@string/search_hint</item>
    <item name="searchIcon">@drawable/ic_search_white_24dp</item>
    <item name="voiceIcon">@drawable/ic_keyboard_voice_white_24dp</item>
    <item name="android:textColorHint">@android:color/white</item>
</style>

我的问题有适当的解决方案吗?

4

0 回答 0