工具栏中的Android持久性搜索条

7
我是一名Android开发的新手。我已经完成了Google Udacity的课程,并正在尝试编写一个应用程序。具体来说,我正在尝试将我的当前应用程序(使用QT编写)转换为本地Android应用程序。
我想要做的是制作类似于这个的东西:

http://i.stack.imgur.com/Exm2y.png

这段文字摘自用户体验交流平台上的Material Design - Persistent search, with navigation drawer问题。

我可以实现顶部的搜索栏,但我无法弄清如何在底部获取持久性搜索栏。我尝试了不同的解决方案(为活动栏和工具栏创建自定义主题),但仍未能获得类似的效果。请有经验的人帮助我解决这个问题吗?


1
这是两个工具栏,其中一个设置为活动的支持操作栏(海拔高度为0dp),另一个在其下方,高度为4dp,布局边距为16dp。这里的值是我假设的,但我认为是正确的。控制搜索的小部件是SearchView,它是第二个工具栏中的菜单项。 - Lucas Crawford
哇,我甚至没有想到使用这种方法!谢谢,我现在要尝试一下。 - nerras
当你说Udacity课程时,是指纳米学位还是仅指其中一门课程?我目前正在学习纳米学位课程。 - Lucas Crawford
这是我找到的一个链接:https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821/m-1643858568 - nerras
3个回答

1

只需要将所有内容放在AppBarLayout内。工具栏和任何用于保持搜索的库。这里非常有用,最后为AppBarLayout设置layout_height。类似于这样

<android.support.design.widget.AppBarLayout
    android:id="@id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="@dimen/margin_130"
    android:background="@drawable/bg_tab_degraded"
    android:theme="@style/ThemeOverlay.AppCompat.Dark">

    <android.support.v7.widget.Toolbar
        android:id="@id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@drawable/bg_tab_degraded"
        app:layout_scrollFlags="scroll|enterAlways"
        />

    <com.arlib.floatingsearchview.FloatingSearchView
        android:id="@+id/floating_search_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/bg_tab_degraded"
        app:floatingSearch_searchBarMarginLeft="@dimen/margin_20"
        app:floatingSearch_searchBarMarginTop="@dimen/margin_5"
        app:floatingSearch_searchBarMarginRight="@dimen/margin_20"
        app:floatingSearch_searchHint="Search..."
        app:floatingSearch_suggestionsListAnimDuration="250"
        app:floatingSearch_showSearchKey="false"
        app:floatingSearch_leftActionMode="showSearch"
        app:floatingSearch_menu="@menu/main"
        app:floatingSearch_close_search_on_keyboard_dismiss="true"/>



</android.support.design.widget.AppBarLayout>

我希望它能帮助你。祝你好运。


0

你可以尝试使用PersistentSearch

search = (SearchBox) findViewById(R.id.searchbox);
for(int x = 0; x < 10; x++){
    SearchResult option = new SearchResult("Result " + Integer.toString(x), getResources().getDrawable(R.drawable.ic_history));
    search.addSearchable(option);
}       
search.setLogoText("My App");
search.setMenuListener(new MenuListener(){

        @Override
        public void onMenuClick() {
            //Hamburger has been clicked
            Toast.makeText(MainActivity.this, "Menu click", Toast.LENGTH_LONG).show();              
        }

    });
search.setSearchListener(new SearchListener(){

    @Override
    public void onSearchOpened() {
        //Use this to tint the screen
    }

    @Override
    public void onSearchClosed() {
        //Use this to un-tint the screen
    }

    @Override
    public void onSearchTermChanged() {
        //React to the search term changing
        //Called after it has updated results
    }

    @Override
    public void onSearch(String searchTerm) {
        Toast.makeText(MainActivity.this, searchTerm +" Searched", Toast.LENGTH_LONG).show();

    }

    @Override
    public void onResultClick(SearchResult result){
        //React to a result being clicked
    }


    @Override
    public void onSearchCleared() {

    }

});

还要检查https://github.com/UsherBaby/SearchView-1

enter image description here


似乎并不完全符合原帖作者的意图。 - anthonymonori
在工具栏下方添加此搜索视图。 - Aditya Vyas-Lakhan
现在它已经被弃用了。 - 476rick

0

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