如何在安卓应用中实现类似Gmail应用的搜索栏?

26

我正在尝试在我的Android应用程序中实现与最新的Gmail应用程序类似的搜索功能(在操作栏中的搜索图标)。

enter image description here

点击搜索图标后,操作栏会变成一个搜索字段,左侧有返回按钮,右侧有麦克风按钮。我希望我的应用程序中也有相同的组件。

是否有任何库或教程可用?

这种材料设计搜索是否可以在非Lollipop版本中支持?


你可以使用SearchView。在某个布局中添加一个SearchView,在工具栏中添加一个布局(android.support.v7.widget.Toolbar),并将工具栏设置为supportActionBar(还需在项目中添加android.support.v7)。 - androidEnthusiast
@n.m.:我无法在默认搜索视图中获得这种样式,而且我希望在所有版本的Android中都能支持。 - Saran
https://dev59.com/Kl4c5IYBdhLWcg3wv8pm - Zero
3个回答

13

我不了解棒棒糖版本,但如果你想要这样的搜索功能,你可以将“main_activity_actions”添加到你的操作栏中:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    <item android:id="@+id/action_search"
          android:title="@string/action_search"
          android:icon="@drawable/ic_action_search"
          yourapp:showAsAction="ifRoom|collapseActionView"
          yourapp:actionViewClass="android.support.v7.widget.SearchView" />
</menu>

并在您的Java中覆盖此内容:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_activity_actions, menu);
    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
    // Configure the search info and add any event listeners
    ...
    return super.onCreateOptionsMenu(menu);
}

更多信息在这里,这是字典的一部分,但是思路相同,拜拜!


9
这个库可以实现这个功能,唯一不能做到的是水波纹效果,但我相信你可以很容易地通过其他资源来实现它:

https://github.com/Quinny898/PersistentSearch

这里是工作完成的图像。

enter image description here


3
上述库已被正式弃用。 - Narendra Baratam

0

2
你的例子太模糊了。我按照那个教程做了,但没有得到 Gmail 搜索框表单。 - aurelianr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接