6

支持Android的設計庫被釋放後,我想實現像Twitter個人資料的網頁效果,其中Toolbartitle和屏幕垂直滾動subtitle可以改變。所以我試圖用CoordinatorLayout,AppBarLayout,CollapsingToolbarLayoutToolbarAndroid支持設計庫來達到這個效果。除了Toolbar的內容無法按我的意願顯示或更改外,所有內容均按預期工作。我應該一直想顯示collapseIcon,navigationIcon,title,subtitleToolbar,但是他們沒有出現,即使我已經在佈局和編程設置它們。正如blog說,如何在CollapsingToolbarLayout中包裝時顯示工具欄的徽標,圖標,標題,副標題?

注意,在這種情況下,你應該在 CollapsingToolbarLayout調用的setTitle(),而不是工具欄上的本身。

如果您已經檢查了doc,你會發現CollapsingToolbarLayout只專注於title設置,但也無可奈何collapseIconnavigationIconsubtitle

那麼有人可以告訴我如何通過ToolbarCollapsingToolbarLayout來實現這個效果嗎?如果他們無法做到,那麼還有什麼其他的可能呢?有人對此有任何想法嗎?

任何提示將不勝感激。提前致謝。

+1

只是一個說明。 Android設計庫不需要Android M預覽。 –

+0

我認爲這是您的體驗:https://code.google.com/p/android/issues/detail?id=175069 – StingRay5

回答

1

出現同樣的問題。對於我來說,它是通過從佈局參數中刪除android:fitsSystemWindows="true"來解決的。但是,這將意味着狀態欄不會成爲摺疊工具欄背景的一部分。

2

已將此問題報告爲here作爲錯誤。我親身體驗過我的一個應用程序。爲工具欄設置topMargin適合我。正如有人對錯誤報告發表評論的,這是修復,作爲問題報告的一個功能。

private void fixApi21ToolBarBug(Toolbar toolbar){ 
    if(Build.VERSION.SDK_INT!=21) return; //only on api 21 
    final int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); 
    final int result = (resourceId > 0) ? getResources().getDimensionPixelSize(resourceId) * 2 : 0; 
    final CollapsingToolbarLayout.LayoutParams params = (CollapsingToolbarLayout.LayoutParams) toolbar.getLayoutParams(); 
    params.topMargin -= result; 
    toolbar.setLayoutParams(params); 
} 

查看結果在這裏。

enter image description here