我正在尝试在我的 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>
我的问题有适当的解决方案吗?