使用SearchView android studio在工具栏中留下空间

Gre*_*ann 11 java android searchview android-toolbar

我正在尝试SearchView在我的应用中添加一个简单的工具栏.它所做的一切都很好用于布局.

NavigationDrawer图标和图标之间有这个"空间" SearchView.如果我设置标题,则该空格将填充该字符串,否则为空.

空字符串:

在此输入图像描述

标题中包含一个字符串:

在此输入图像描述

如何删除烦人的空白区域?

编辑:

我正在使用NavigationDrawerAndroid Studio中的示例作为基本代码

main.xml中

    <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="@android:drawable/ic_menu_search"
        android:title="Search"
        app:actionViewClass="android.support.v7.widget.SearchView"
        app:showAsAction="always" />

    </menu>
Run Code Online (Sandbox Code Playgroud)

app_bar_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="ga.musicforyou.musicforyou.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
       >

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            app:contentInsetEnd="0dp"
            app:contentInsetStart="0dp"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            />

    </android.support.design.widget.AppBarLayout>


</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <include
        layout="@layout/app_bar_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        app:theme="@style/ThemeOverlay.AppCompat.Dark"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:itemTextColor="#FFF"
        app:itemIconTint="#FFF"

        app:menu="@menu/activity_main_drawer" />

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

sla*_*cek 7

工具栏从FrameLayout扩展,您可以在其中放置视图.像这样:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/primary_color">

<SearchView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

编辑:您将其作为菜单放在布局中.它始终位于工具栏的右侧,因为它是一个菜单.如果你想更直接地控制工具栏中的视图,就像我给你看的那样把它放在那里.

  • 我设置了actionBar.setDisplayHomeAsUpEnabled(true).你的解决方案对我不起作用. (2认同)