Material 中的SearchView的学习和研究

继TextInputLayout 之后,继续研究Material SearchView的使用。下面附上效果图:
动态图:
Material 中的SearchView的学习和研究_第1张图片

静态效果图:
1.材料设计风格的
这里写图片描述
这里写图片描述

2.开源框架的:
Material 中的SearchView的学习和研究_第2张图片

一 在Toolbar 中直接添加SearchView :

  • 1.menu_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_settings"
          android:title="@string/action_settings"
          android:orderInCategory="100"
          app:showAsAction="never"/>

    <item android:id="@+id/action_search"
          android:title="Search"
          android:icon="@drawable/abc_ic_search_api_mtrl_alpha"
          app:showAsAction="ifRoom|collapseActionView"
          app:actionViewClass="android.support.v7.widget.SearchView"/>
</menu>
  • 2.activity 界面中的调用
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main,menu);

        // Retrieve the SearchView and plug it into SearchManager
        SearchView searchView = (SearchView)MenuItemCompat.getActionView(menu.findItem(R.id.action_search));

        EditText searchEditText = (EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
        searchEditText.setTextColor(getResources().getColor(R.color.white));
        searchEditText.setHintTextColor(getResources().getColor(R.color.white));

        SearchManager searchManager = (SearchManager)getSystemService(SEARCH_SERVICE);
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

        return true;
    }

注意:其中改变serchView hint的颜色,字体颜色的方法

searchEditText.setTextColor(getResources().getColor(R.color.white));
searchEditText.setHintTextColor(getResources().getColor(R.color.white));
SearchManager searchManager = (SearchManager)getSystemService(SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

二 直接使用开源库的 SearchView:

下面是开源库的地址:https://github.com/MiguelCatalan/MaterialSearchView,参照了它的使用方法。

最后明天要放假了,原谅我的草草了事!好匆忙的感觉。。。

你可能感兴趣的:(android,开源框架,设计,布局)