Android SearchLayout 没有正确显示在工具栏中?

Android SearchLayout is not appearing properly in toolbar?

我想用 RecyclerView 制作 SearchView 我的过滤功能完美运行,但 SearchLayout 显示不正确。

我参考这个 link 将 SearchView 与 RecyclerView 集成

这是我的 Menu.xml

    <?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="com.learn2crack.recyclerviewsearch.MainActivity">
        <item
            android:id="@+id/search"
            android:icon="@drawable/search_icon"
            android:title="Search"
            app:showAsAction="ifRoom|collapseActionView"
            app:actionViewClass="android.support.v7.widget.SearchView"/>
    </menu>

这是我的 XML 设计代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    android:background="@color/appyellow"
    tools:context="app.msupply.com.ideaurben.Activity.Report_Here">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbarmenu"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay"/>


    <android.support.v7.widget.RecyclerView
        android:id="@+id/my_recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:nestedScrollingEnabled="false"
        android:scrollbars="vertical" />
</LinearLayout>

这是我的 java 代码:

  Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarmenu);
        this.setSupportActionBar(toolbar);
       // toolbar.setTitle("Report Search");
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle("Report Search");
        getSupportActionBar().setDisplayShowTitleEnabled(true);




 @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.menu_main, menu);

        MenuItem search = menu.findItem(R.id.search);
        SearchView searchView = (SearchView) MenuItemCompat.getActionView(search);
        searchView.setQueryHint("Search Here");
        searchView.setBackgroundColor(Color.WHITE);
        search(searchView);
     //   searchView.setOnQueryTextListener(this);

        return true;


    }

我想让 Searchview 与所提供的相同 link。我遵循了几乎相同的方法,但是它没有正常运行。这是我的

像下面这样设置搜索视图颜色透明

@Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.menu_main, menu);

        MenuItem search = menu.findItem(R.id.search);
        SearchView searchView = (SearchView) MenuItemCompat.getActionView(search);
        searchView.setQueryHint("Search Here");
        searchView.setBackgroundColor(Color.TRANSPARENT);
        search(searchView);
        return true;
    }

您的代码存在问题,您使用的是 LinearLayout 而不是 CoordinatorLayout 所有此类动画都是后者的结果。 享受吧。