擴(kuò)展ToolBar效果圖如下:
成都網(wǎng)站設(shè)計、成都網(wǎng)站制作介紹好的網(wǎng)站是理念、設(shè)計和技術(shù)的結(jié)合。成都創(chuàng)新互聯(lián)公司擁有的網(wǎng)站設(shè)計理念、多方位的設(shè)計風(fēng)格、經(jīng)驗豐富的設(shè)計團(tuán)隊。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營銷思維進(jìn)行網(wǎng)站設(shè)計、采用先進(jìn)技術(shù)開源代碼、注重用戶體驗與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。
要使用CoordinatorLayout先在gradle中加入compile 'com.android.support:design:23.4.0'
Activity布局:
app:title設(shè)置的Title內(nèi)容在布局展開的時候會變得大些,而在折疊的時候使字體過渡到默認(rèn)值,注意,我們的title是在CollapsingToolbarLayout上面設(shè)置的,而不是在ToolBar上面
app:layout_collapseMode這個屬性來設(shè)置子視圖折疊模式,有兩種:
固定模式:app:layout_collapseMode = "pin" 確保Toolbar在view折疊的時候最后固定在屏幕的頂部。
視差模式:app:layout_collapseMode = "parallax" 在折疊的時候會有個視差折疊的效果。
app:layout_scrollFlags屬性設(shè)置滑動的方式,以起到響應(yīng)布局的作用
Flag包括:
scoll: 所有想滾動出屏幕的view都需要設(shè)置這個flag- 沒有設(shè)置這個flag的view將被固定在屏幕頂部。
enterAlways: 這個flag讓任意向下的滾動都會導(dǎo)致該view變?yōu)榭梢?,啟用快速“返回模式”?/p>
enterAlwaysCollapsed: 顧名思義,這個flag定義的是何時進(jìn)入(已經(jīng)消失之后何時再次顯示)。假設(shè)你定義了一個最小高度(minHeight)同時enterAlways也定義了,那么view將在到達(dá)這個最小高度的時候開始顯示,并且從這個時候開始慢慢展開,當(dāng)滾動到頂部的時候展開完。
exitUntilCollapsed: 同樣顧名思義,這個flag時定義何時退出,當(dāng)你定義了一個minHeight,這個view將在滾動到達(dá)這個最小高度的時候消失。
通過app:layout_behavior="@string/appbar_scrolling_view_behavior"屬性來實現(xiàn)滾動布局。
Activity代碼:
public class ScrollingActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_scrolling); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_scrolling, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
ToolBar的收縮:
只是稍微修改下布局文件:
擴(kuò)展ToolBar源碼地址:http://down.51cto.com/data/2222027
收縮ToolBar源碼地址:http://down.51cto.com/data/2222230