亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android開發筆記(一百三十六)可折疊工具欄布局CollapsingToolbarLayout

2019-11-08 00:23:45
字體:
來源:轉載
供稿:網友

可折疊工具欄布局CollapsingToolbarLayout

上一篇博文《Android開發筆記(一百三十五)應用欄布局AppBarLayout》闡述了如何把Toolbar往上滾動,那反過來,能不能把Toolbar往下拉動呢?這里要明確一點,Toolbar本身是頁面頂部的工具欄,其上沒有本頁面的其它控件了,如果Toolbar被拉下來了,那Toolbar上面的空白該顯示什么?所以Toolbar的上部邊緣是不可以往下拉的,只有下部邊緣才能往下拉,這樣的視覺效果好比Toolbar如電影幕布一般緩緩向下展開。不過,Android在實現展開效果的時候,并非直接讓Toolbar展開或收縮,而是另外提供了CollapsingToolbarLayout,通過該布局包裹Toolbar,從而控制標題欄的展開和收縮行為。下面是CollapsingToolbarLayout的屬性說明:app:contentScrim : 指定布局內部未展開時的背景顏色。app:collapsedTitleTextAppearance : 指定未展開時的標題文字字體。app:collapsedTitleTextColor : 指定未展開時的標題文字顏色。app:collapsedTitleGravity : 指定未展開時的標題文字對齊方式。app:expandedTitleTextAppearance : 指定展開后的標題文字字體。app:expandedTitleTextColor : 指定展開后的標題文字顏色。app:expandedTitleGravity : 指定展開后的標題文字對齊方式。app:expandedTitleMargin : 指定展開后的標題四周間距。app:expandedTitleMarginStart/app:expandedTitleMarginTop/app:expandedTitleMarginEnd/app:expandedTitleMarginBottom : 指定展開后的標題具體方向的間距。上述屬性在代碼中的設置方法如下所示:setContentScrim/setContentScrimColor/setContentScrimResource : 設置布局內部未展開時的背景顏色。setCollapsedTitleTextAppearance : 設置未展開時的標題文字字體。setCollapsedTitleTextColor : 設置未展開時的標題文字顏色。setCollapsedTitleGravity : 設置未展開時的標題文字對齊方式。setExpandedTitleTextAppearance : 設置展開后的標題文字字體。setExpandedTitleColor : 設置展開后的標題文字顏色。setExpandedTitleGravity : 設置展開后的標題文字對齊方式。setExpandedTitleMargin : 設置展開后的標題四周間距。setExpandedTitleMarginStart/setExpandedTitleMarginTop/setExpandedTitleMarginEnd/setExpandedTitleMarginBottom : 設置展開后的標題具體方向的間距。在工程中使用CollapsingToolbarLayout,則需注意以下幾點:1、添加幾個庫的支持,包括appcompat-v7庫(Toolbar需要)、design庫(CollapsingToolbarLayout需要)、recyclerview庫(主頁面的RecyclerView需要);2、布局文件的根布局采用android.support.design.widget.CoordinatorLayout,因為design庫的動態效果都依賴于該控件;3、CoordinatorLayout節點要添加命名空間聲明xmlns:app="http://schemas.android.com/apk/res-auto";4、使用android.support.design.widget.AppBarLayout節點包裹android.support.design.widget.CollapsingToolbarLayout節點,再在CollapsingToolbarLayout節點下添加Toobar;5、Toobar節點添加滾動屬性app:layout_scrollFlags="scroll|enterAlways",聲明工具欄的滾動行為標志;其實真正運行的時候,Toolbar的高度是固定不變的,變化高度的是CollapsingToolbarLayout。只是許多App把這兩者的背景設為一樣的,所以看起來像是統一的標題欄在收縮和展開。既然二者原本不是一家,那么就得有新的屬性用于區分它們內部的行為,新屬性在CollapsingToolbarLayout的子視圖節點上聲明,說明如下:app:layout_collapseMode : 指定子視圖(通常是Toolbar)的折疊模式。有以下三個取值說明:--pin : 固定模式,當前視圖固定不動,不受CollapsingToolbarLayout的折疊影響。--parallax : 視差模式,隨著CollapsingToolbarLayout的收縮與展開,當前視圖也跟著收縮與展開。折疊系數可通過屬性app:layout_collapseParallaxMultiplier配置,該屬性為1.0時,折疊效果同pin模式即固定不動;該屬性為0.0時,折疊效果等同于none模式,即也跟著移動相同距離。--none : 默認值。CollapsingToolbarLayout折疊多少距離,則當前視圖也移動多少距離,通俗地說,就是夫唱婦隨。app:layout_collapseParallaxMultiplier : 指定視差模式時的折疊距離系數,取值在0.0到1.0之間。如不指定該屬性則默認為0.5為了區分這幾種模式的差異,還是上幾個動圖加以說明。下面是Toolbar采用pin模式時的效果圖,可以看到紅色區域始終不動:下面是Toolbar采用parallax模式時的效果圖,可以看到紅色區域會隨著滾上去再滾下來。因為折疊系數設置為0.1,所以其效果近似于none模式。下面是演示折疊模式使用的布局文件例子:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:id="@+id/cl_main"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <android.support.design.widget.AppBarLayout        android:id="@+id/abl_title"        android:layout_width="match_parent"        android:layout_height="160dp"        android:background="@color/blue_light" >        <android.support.design.widget.CollapsingToolbarLayout            android:id="@+id/ctl_title"            android:layout_width="match_parent"            android:layout_height="match_parent"            app:layout_scrollFlags="scroll|exitUntilCollapsed"            app:contentScrim="?attr/colorPRimary"            app:expandedTitleMarginStart="40dp" >            <android.support.v7.widget.Toolbar                android:id="@+id/tl_title"                android:layout_width="match_parent"                android:layout_height="?attr/actionBarSize"                android:background="@color/red"                app:layout_collapseMode="parallax"                app:layout_collapseParallaxMultiplier="0.1" />        </android.support.design.widget.CollapsingToolbarLayout>    </android.support.design.widget.AppBarLayout>    <android.support.v7.widget.RecyclerView        android:id="@+id/rv_main"        android:layout_width="match_parent"        android:layout_height="match_parent"        app:layout_behavior="@string/appbar_scrolling_view_behavior" /></android.support.design.widget.CoordinatorLayout>當然,CollapsingToolbarLayout的折疊效果并不僅限于和Toolbar的互動,還包括標題文字的樣式漸變(文字大小、顏色、間距等等),連背景圖片都可以實現折疊的漸變效果。下面是標題欄在折疊時顯示漸變圖片的效果圖:要實現圖片的折疊漸變,其實很簡單,只需在Toolbar節點前面加個ImageView節點的聲明即可,下面是演示折疊模式使用的布局文件例子:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:id="@+id/cl_main"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <android.support.design.widget.AppBarLayout        android:id="@+id/abl_title"        android:layout_width="match_parent"        android:layout_height="160dp"        android:background="@color/blue_light" >        <android.support.design.widget.CollapsingToolbarLayout            android:id="@+id/ctl_title"            android:layout_width="match_parent"            android:layout_height="match_parent"            app:layout_scrollFlags="scroll|exitUntilCollapsed"            app:contentScrim="#aaffaa"            app:expandedTitleMarginStart="100dp" >            <ImageView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                app:layout_collapseMode="parallax"                app:layout_collapseParallaxMultiplier="0.1"                android:scaleType="centerCrop"                android:src="@drawable/top_pic" />                        <android.support.v7.widget.Toolbar                android:id="@+id/tl_title"                android:layout_width="match_parent"                android:layout_height="?attr/actionBarSize"                app:layout_collapseMode="pin"                app:layout_scrollFlags="scroll|enterAlways" />        </android.support.design.widget.CollapsingToolbarLayout>    </android.support.design.widget.AppBarLayout>    <android.support.v7.widget.RecyclerView        android:id="@+id/rv_main"        android:layout_width="match_parent"        android:layout_height="match_parent"        app:layout_behavior="@string/appbar_scrolling_view_behavior" /></android.support.design.widget.CoordinatorLayout>

與CollapsingToolbarLayout有關的滾動標志

上一篇博文《Android開發筆記(一百三十五)應用欄布局AppBarLayout》說過,AppBarLayout的子控件共有五個滾動標志,同時提到后面三個標志與CollapsingToolbarLayout有關。現在就針對CollapsingToolbarLayout,重新演示看看五種標志分別對應的效果圖。1、scroll : 頭部與主體一起滾動。如果僅僅聲明scroll,沒有聲明其它標志,則滾動效果如下圖所示:2、enterAlways : 頭部與主體先一起滾動,頭部滾到位后,主體繼續向上或者向下滾。同時聲明scroll和enterAlways,滾動效果如下圖所示:3、exitUntilCollapsed : 該標志保證頁面上至少能看到最小化的工具欄,不會完全看不到工具欄。具體的滾動說明如下所示:向上滾動:頭部先往上收縮,一直滾到折疊的最小高度。然后頭部固定不動,主體繼續向上滾動。向下滾動:頭部固定不動,主體先向下滾動,一直滾到主體全部拉出。然后頭部向下展開。同時聲明scroll和exitUntilCollapsed,滾動效果如下圖所示:4、enterAlwaysCollapsed:該標志一般跟enterAlways一起使用,它與enterAlways區別在于有折疊操作,而單獨的enterAlways沒有折疊。具體的滾動說明如下所示:向上滾動:頭部先往上收縮,一直滾到折疊的最小高度。然后頭部與主體先一起滾動,頭部滾到位后,主體繼續向上。向下滾動:頭部與主體先一起滾動,一直滾到頭部折疊的最小高度。然后主體向下滾動,滾到位后頭部繼續向下展開。同時聲明scroll、enterAlways和enterAlwaysCollapsed,滾動效果如下圖所示:5、snap : 在用戶手指松開時,系統自行判斷,接下來是全部向上滾到頂,還是全部向下展開。同時聲明scroll和snap,滾動效果如下圖所示:下面是演示五種標志用到的布局文件例子:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:id="@+id/cl_main"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <android.support.design.widget.AppBarLayout        android:id="@+id/abl_title"        android:layout_width="match_parent"        android:layout_height="160dp"        android:background="@color/blue_light" >        <android.support.design.widget.CollapsingToolbarLayout            android:id="@+id/ctl_title"            android:layout_width="match_parent"            android:layout_height="match_parent"            app:layout_scrollFlags="scroll|exitUntilCollapsed"            app:contentScrim="?attr/colorPrimary"            app:expandedTitleMarginStart="40dp" >            <android.support.v7.widget.Toolbar                android:id="@+id/tl_title"                android:layout_width="match_parent"                android:layout_height="?attr/actionBarSize"                app:layout_collapseMode="pin" >                <Spinner                    android:id="@+id/sp_flag"                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:layout_gravity="center"                    android:spinnerMode="dialog" />            </android.support.v7.widget.Toolbar>        </android.support.design.widget.CollapsingToolbarLayout>    </android.support.design.widget.AppBarLayout>    <android.support.v7.widget.RecyclerView        android:id="@+id/rv_main"        android:layout_width="match_parent"        android:layout_height="match_parent"        app:layout_behavior="@string/appbar_scrolling_view_behavior" /></android.support.design.widget.CoordinatorLayout>點擊下載本文用到的可折疊工具欄布局的工程代碼點此查看Android開發筆記的完整目錄
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品动漫一区二区| 欧美日韩国产va另类| 欧美大片网站在线观看| 国产精品旅馆在线| 欧美日韩视频免费播放| 欧美日韩国产第一页| 性色av一区二区三区免费| 久久久综合av| 国产午夜一区二区| www.欧美精品| 亚洲专区中文字幕| 中文一区二区视频| 国产精品爽爽爽爽爽爽在线观看| 欧美日韩精品国产| 97精品视频在线观看| 欧美日韩在线视频首页| 欧美日韩国产中文精品字幕自在自线| 久久久亚洲国产天美传媒修理工| 欧美日韩国产成人| 亚洲美女在线看| 日韩欧美精品中文字幕| 国产精品jvid在线观看蜜臀| 亚洲国产日韩精品在线| 国产伊人精品在线| 91视频国产一区| 国产精品成人播放| 日韩电影在线观看免费| 中文字幕亚洲图片| 青草热久免费精品视频| 国产激情综合五月久久| 欧美激情一区二区三级高清视频| 自拍偷拍亚洲区| 中文在线不卡视频| 日本成人免费在线| 日韩免费精品视频| 国产精品福利无圣光在线一区| 91视频国产一区| 色多多国产成人永久免费网站| 日韩成人黄色av| 一本色道久久88亚洲综合88| 国产成人精品午夜| 在线丨暗呦小u女国产精品| 2019中文字幕在线免费观看| 97人人爽人人喊人人模波多| 国产91精品不卡视频| 亚洲第五色综合网| 国产成人aa精品一区在线播放| 91高潮在线观看| 精品国产乱码久久久久酒店| 久久久久久久久久久91| 日韩大片在线观看视频| 国产区精品在线观看| 91久久久久久久久久| 欧美午夜视频一区二区| 伊人久久久久久久久久久久久| 日韩欧美国产成人| 国产精品久久久久久五月尺| 久久伊人91精品综合网站| 一本色道久久综合狠狠躁篇的优点| 992tv成人免费影院| 亚洲国产精品美女| 91精品国产九九九久久久亚洲| 欧美大肥婆大肥bbbbb| 久热精品视频在线免费观看| 国产精品中文字幕在线观看| 亚洲人成网站999久久久综合| 国产亚洲激情视频在线| 日韩免费在线观看视频| 日韩欧美亚洲范冰冰与中字| zzijzzij亚洲日本成熟少妇| 亚洲视频网站在线观看| 91tv亚洲精品香蕉国产一区7ujn| 成人看片人aa| 国产综合在线看| 久久久视频精品| 日韩一二三在线视频播| 在线播放国产精品| 在线观看欧美日韩| 日韩成人av在线| 亚洲欧美成人精品| 欧美中文字幕精品| 国产精品久久国产精品99gif| 久久综合色88| 中文字幕国产亚洲2019| 91chinesevideo永久地址| 久久中文字幕视频| 欧洲亚洲免费视频| 国产偷国产偷亚洲清高网站| 久久久久久久久久亚洲| 久久精品国产96久久久香蕉| 久久手机免费视频| 国产精品第一第二| 色综合视频网站| 久久免费国产视频| 国产欧美精品在线| 久久久国产精品x99av| 在线精品高清中文字幕| 日韩在线视频观看正片免费网站| 97在线观看视频国产| 国产午夜精品免费一区二区三区| 91香蕉嫩草神马影院在线观看| 欧美日韩国产丝袜美女| 57pao精品| 久久国产天堂福利天堂| 精品一区二区三区电影| 日韩动漫免费观看电视剧高清| 国产原创欧美精品| 亚洲色图15p| 亚洲自拍偷拍色片视频| 成人在线精品视频| 欧美一区二区三区免费观看| 欧美在线视频a| 91在线观看免费高清| 日韩av在线播放资源| 成人激情视频在线播放| 亚洲欧美精品中文字幕在线| 日韩高清av一区二区三区| 国产香蕉97碰碰久久人人| 亚洲国产一区自拍| 国产精品揄拍一区二区| 欧美激情女人20p| 欧美插天视频在线播放| 97碰在线观看| 人人爽久久涩噜噜噜网站| 中文字幕亚洲二区| 日本精品性网站在线观看| 日韩在线精品视频| 第一福利永久视频精品| 成人精品久久一区二区三区| 中文字幕亚洲欧美一区二区三区| 国产一区二区三区在线播放免费观看| 97精品久久久中文字幕免费| 国产欧美精品在线播放| 精品国产视频在线| 久久久精品国产| 亚洲在线视频观看| 性色av一区二区三区免费| 欧美激情精品久久久久久| 91久久国产综合久久91精品网站| 国产精品久久久久福利| 日韩电影中文字幕av| 成人黄色在线观看| 日韩欧美国产网站| 5566日本婷婷色中文字幕97| 狠狠躁夜夜躁人人爽天天天天97| 亚洲韩国欧洲国产日产av| 日韩精品视频免费| 中国china体内裑精亚洲片| 日韩精品在线观| 国产精品网红直播| 亚洲欧美一区二区激情| 亚洲影院高清在线| 欧美性猛交xxxx富婆弯腰| 国产精品视频永久免费播放| 日韩中文av在线| 日韩av一区二区在线| 91精品视频在线播放| 午夜精品一区二区三区在线播放| 精品露脸国产偷人在视频| 亚洲人成电影网站色xx| 国产精品视频公开费视频| 日韩日本欧美亚洲| 亚洲欧美在线看| www国产亚洲精品久久网站|