android - 支持工具栏与支持搜索 View

标签 android android-support-library material-design

我对支持工具栏有疑问。当我折叠搜索 View 时。所有工具栏项目(在我的例子中是 ProgressBar)都设置为 View.VISIBLE ,并且在 SearchView 和 SupportMenuItem 中都没有监听器,当搜索 View 完成折叠时,手动返回我的项目可见性。

我的 Toolbar.xml

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimaryDark" >

    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="" />

    <ProgressBar
        android:id="@+id/progress_spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:indeterminate="true"
        android:maxHeight="30dip"
        android:minHeight="30dip"
        android:visibility="gone" />

</android.support.v7.widget.Toolbar>

创建菜单选项

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    super.onCreateOptionsMenu(menu);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_search, menu);
    final SupportMenuItem searchItem = (SupportMenuItem) menu
            .findItem(R.id.search);

    searchView = (SearchView) searchItem.getActionView();
    searchView.setOnQueryTextListener(this);


    searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View view,boolean queryTextFocused) {
                    if (!queryTextFocused) {
                        searchItem.collapseActionView();
                        searchView.setQuery("", false);

                    }

                }
            });


    return super.onCreateOptionsMenu(menu);
}

实际问题是如何恢复所需的工具栏项可见性?

引用“自定义工具栏中的所有项目都设置为 View.VISIBLE after closing SearchView” https://code.google.com/p/android/issues/detail?id=78160

更新找到的解决方案

    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimaryDark" >

    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="" />

    <LinearLayout
        android:id="@+id/holder"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right" >

        <ProgressBar
            android:id="@+id/progress_spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:indeterminate="true"
            android:maxHeight="30dip"
            android:minHeight="30dip"
            android:visibility="gone" />
    </LinearLayout>

</android.support.v7.widget.Toolbar>

似乎搜索 View 折叠只影响工具栏的直接子项。 :)

最佳答案

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimaryDark" >

<TextView
    android:id="@+id/toolbar_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="" />

<LinearLayout
    android:id="@+id/holder"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right" >

    <ProgressBar
        android:id="@+id/progress_spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminate="true"
        android:maxHeight="30dip"
        android:minHeight="30dip"
        android:visibility="gone" />
</LinearLayout>

似乎搜索 View 折叠只影响工具栏的直接子项。希望这篇文章对你们中的一些人有用。

关于android - 支持工具栏与支持搜索 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28497844/

相关文章:

java - 升级android studio后"Failed to resolve: support-v4"

android - 你如何在Android 7.1中获得 "Contacts"app "Birthday"字段外观?

android - 在 Lollipop 上启动 APN 设置 Activity

具有兼容库的 Android Fragments

android - 并行运行两个 AsyncTaskLoader

android - 单击后隐藏 float 操作按钮

Android以编程方式设置正常状态栏

android - 我想改变 ringertonevolume 的音量

javascript - QuickConnect 与 Phonegap

java - 如何使用四元数控制相机