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

时间:2017-08-16 11:03:39

标签: android android-layout android-toolbar menuitem searchview

我想SearchView RecyclerView我的过滤功能完美无缺,但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一样。我跟着几乎相同,但它没有正确到来。这是我的image

2 个答案:

答案 0 :(得分:0)

将searchview颜色设置为TRANSPARENT,如下所示

@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;
    }

答案 1 :(得分:0)

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