1

我面臨着這個SO question中描述的相同問題(如果我的搜索視圖是打開的,我摺疊我的工具欄,兩個重疊)。所以我試圖實現批准的答案,使其標題在摺疊時透明。解決方案對我來說只是部分工作,因爲我遇到了與消息n中描述的相同的問題。 11在這個bug here的報告中。簡而言之,如果在摺疊工具欄時搜索視圖處於打開狀態,則標題的顏色不會恢復爲白色。這是我的佈局:Android:使CollapsingToolbarLayout標題透明,以避免與SearchView重疊

<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> 

這是我寫的聽搜索查看打開和關閉的代碼:

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。謝謝大家的時間。

+0

您是否嘗試過最後的工作? [#15](https://code.google.com/p/android/issues/detail?id=178138#c15) –

+0

是的,我試過了,但顯然它不適合我。我在'onMenuItemActionCollapse'回調的'return true;'之前使用了'collapsingToolbar.setTitle(「Title」);''。沒有運氣。 – MatteoBelfiori

回答

0
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; 
     } 
    }); 

這對我很好。感謝您以前的帖子

+0

嗨nadafafif,感謝您的回答,但這個解決方案基本上是馬里奧貝拉斯科建議我的方案,它不適合我。此外,在'onMenuItemActionCollapse()'返回false不會讓我的searchview關閉,所以我不明白它爲什麼對你有用。 – MatteoBelfiori