【问题标题】:Android SearchLayout is not appearing properly in toolbar?Android SearchLayout 没有正确显示在工具栏中?
【发布时间】:2017-08-16 11:03:39
【问题描述】:

我想让SearchViewRecyclerView 我的过滤功能完美运行,但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 相同。我遵循了几乎相同的方法,但它没有正常进行。这是我的

【问题讨论】:

  • 当搜索视图打开时你想让工具栏变白吗?
  • @BrunoFerreira 是的,你是对的..

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


【解决方案1】:

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

【讨论】:

  • 你也设置了一些行为吗?因为没有它,它就行不通。
  • 看起来你在RecyclerView 下禁用了nestedScrolling 任何想法,为什么?
  • 天哪,CoordinatorLayout 工作正常,非常感谢您使用协调器布局。我喜欢的另一个查询,我想在同一个搜索视图中将文本颜色更改为黑色并将后退箭头更改为黑色。
  • 您好我需要更改searchview 文本颜色,您提供了工具栏更改颜色的链接..请指导我。
  • 您的意思是提示颜色,即“在此处搜索”?
【解决方案2】:

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

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

【讨论】:

  • 让我检查一下先生。@Omi
  • 真的吗?这就是你要修复它的方法 Omi?
  • @Omi 先生,我试过了,但仍然无法修复。我正在尝试超过 4 小时。
猜你喜欢
  • 2017-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多