Android:使CollapsingToolbarLayout标题透明,以避免与SearchView重叠



我正面临着这个问题中描述的相同问题(如果我的搜索视图是打开的,我折叠我的工具栏,这两个重叠)。因此,我试图实现已批准的答案,使我的标题在折叠时透明。解决方案对我来说只是部分有效,因为我遇到了这个bug报告中11号消息中描述的相同问题。简而言之,如果在工具栏折叠时打开搜索视图,标题的颜色不会恢复为白色。这是我的布局:

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/toolbar_expanded_height"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
        <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="70dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">
            <android.support.v7.widget.Toolbar
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:popupTheme="@style/ToolbarPopupTheme"
                app:layout_collapseMode="pin" />
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>
    ...
</android.support.design.widget.CoordinatorLayout>

这是我写的代码来监听searchview打开和关闭:

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.my_menu, menu);
    MenuItem searchItem = menu.findItem(R.id.search);
    MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {
        @Override
        public boolean onMenuItemActionExpand(MenuItem item) {
            collapsingToolbar.setCollapsedTitleTextColor(Color.TRANSPARENT);
            return true;
        }
        @Override
        public boolean onMenuItemActionCollapse(MenuItem item) {
            collapsingToolbar.setCollapsedTitleTextColor(Color.WHITE);
            return true;
        }
    });
    ...
}

其中collapsingToolbar显然是对我的CollapsingToolbarLayout的引用。谢谢大家的宝贵时间。

 MenuItemCompat.setOnActionExpandListener(menu.findItem(R.id.action_search), new MenuItemCompat.OnActionExpandListener() {
        @Override
        public boolean onMenuItemActionExpand(MenuItem item) {
            mCollapsingToolbar.setCollapsedTitleTextColor(Color.TRANSPARENT);
            return true;
        }
        @Override
        public boolean onMenuItemActionCollapse(MenuItem item) {
            mCollapsingToolbar.setCollapsedTitleTextColor(Color.WHITE);
            mCollapsingToolbar.setTitle(mCategoryName);
            return false;
        }
    });

这对我来说很好。谢谢你以前的帖子

最新更新