【问题标题】:Add Collapsable SearchView Actionbar without action bar添加没有操作栏的可折叠 SearchView 操作栏
【发布时间】:2013-10-30 22:49:09
【问题描述】:

我有一个像这样的标题布局。

现在在按钮右侧的下一个我想添加此图像 并尝试使用可折叠搜索视图而不使用操作栏意味着我想应用与操作栏搜索视图相同的效果我的布局标题。

此外,我还想删除标题上方的应用程序的名称和图标。

任何想法如何实现这一目标?

您的帮助/建议将不胜感激...

提前谢谢...

编辑 ::

到目前为止我尝试过的是......

这是我的 header.xml

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android" >

    <RelativeLayout
        android:id="@+id/layout_header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/topbar"
        android:paddingLeft="10dp"
        android:paddingRight="10dp" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/btnPrevious"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/previous" />
        </LinearLayout>

        <TextView
            android:id="@+id/tv_headerText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_gravity="center|center_vertical|fill_horizontal"
            android:text="Home"
            android:textColor="#FFFFFF"
            android:textSize="20dp"
            android:textStyle="bold" />

        <Button
            android:id="@+id/btnLogout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:background="@drawable/logout" />

        <ImageButton
            android:id="@+id/imgSearch"
            style="@style/Widget.Sherlock.ActionButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toLeftOf="@+id/btnLogout"
            android:src="@drawable/ic_search_inverse"
            android:title="Search" />

        <com.actionbarsherlock.widget.SearchView
            android:id="@+id/searchView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/tv_headerText"
            android:layout_marginTop="10dp"
            android:layout_toLeftOf="@+id/imgSearch"
            android:background="@drawable/ic_search_inverse"
            android:visibility="gone" />
    </RelativeLayout>

</merge>

search_menu.xml

<item
    android:id="@+id/action_search"
    android:actionViewClass="android.widget.SearchView"
    android:icon="@android:drawable/ic_menu_search"
    android:showAsAction="always"
    android:title="Search"/>

layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:orientation="vertical" >

    <!-- header Part -->

    <include layout="@layout/header" />

    <!-- header Part is over. -->

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="10dp" >

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="None"
            android:textColor="@color/black"
            android:textSize="25dp"
            android:textStyle="bold"
            android:visibility="gone" />

        <ListView
            android:id="@+id/list"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_below="@+id/et_productSearch"
            android:cacheColorHint="#00000000"
            android:scrollbars="none" >
        </ListView>
    </RelativeLayout>

</LinearLayout>

在我的Home.java

ImageView imgSearch;
SearchView searchView;

imgSearch=(ImageView)findViewById(R.id.imgSearch);
searchView = ((SearchView)findViewById(R.id.searchView));


searchView.setOnCloseListener(new SearchView.OnCloseListener() {
   @Override
   public boolean onClose() {
        searchView.setVisibility(View.INVISIBLE);
        return false;
        }
   });

我的 OnOptionItemSelected ::

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {

        case R.id.action_search:
            if (searchView.getVisibility() == View.VISIBLE) {
                searchView.setIconified(true);
                searchView.setVisibility(View.INVISIBLE);
            } else {
                //searchView.setMaxWidth(searchView,getWidth() - imgSearch.getWidth());
                searchView.setVisibility(View.VISIBLE);
                searchView.setIconified(false);
            }
            break;
        }
        return true;
    }

【问题讨论】:

    标签: android actionbarsherlock searchview collapsable


    【解决方案1】:

    这个问题已经在 SO 中得到了回答:

    Android ActionBar: collapsible SearchView with action button

    看看。

    【讨论】:

    • 非常感谢您的快速回复。我按照上面的链接所说的做了同样的事情。但是我有点困惑,imgSearch(图片搜索)的onClick怎么办??跨度>
    • @AndroidLearner - 也许你应该看看这里:developer.android.com/guide/topics/search/search-dialog.html 似乎你并不真正了解 SearchView 的工作原理..
    • 查看我更新的问题,它为您提供了更清晰的图片,因此您可以向我推荐比链接更好的东西。我的问题很清楚,我需要在图像视图的 onClick 上编写什么代码/逻辑,这样我才能获得可折叠操作栏搜索视图的效果。?
    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2014-11-26
    • 1970-01-01
    • 2018-02-15
    相关资源
    最近更新 更多