Android Material Design系列之CoordinatorLayout听诸,CollapsingToolbarLayout等

這篇文章其實我一直在想,是寫還是不寫蚕泽,因為關(guān)于講 CoordinatorLayout晌梨,AppBarLayout,CollapsingToolbarLayout,Toolbar仔蝌,TabLayout 等這些控件的使用泛领,以前寫過一篇,那就是《通過來模仿稀土掘金個人頁面的布局來學(xué)習(xí)使用CoordinatorLayout 》敛惊,一直關(guān)注和看公眾號的關(guān)注者應(yīng)該看到過渊鞋,上一篇的推送也特別講了 CoordinatorLayout 的其他用法,看過的人都說還能這么用扒萍贰篓像?哈哈……這次寫這篇是對我上一篇《通過來模仿稀土掘金個人頁面的布局來學(xué)習(xí)使用CoordinatorLayout 》遺留問題的加強和修改。

這次關(guān)于 CoordinatorLayout皿伺,AppBarLayout员辩,CollapsingToolbarLayout,Toolbar鸵鸥,TabLayout 等這些控件的用法我就不講了奠滑,不懂的或者不清楚的就去看《通過來模仿稀土掘金個人頁面的布局來學(xué)習(xí)使用CoordinatorLayout 》這篇文章,因為這次我們主講怎么把上次大家給我提問的問題進行修改和加強妒穴,優(yōu)化等宋税。

問題

上次關(guān)于仿稀土掘金的文章發(fā)出后,我看到有人在微信后臺跟我留言讼油,也有人在github上給我提問題杰赛,大約問的最多的有三個問題。

  • 原圖是沉浸狀態(tài)欄乏屯,你的這個模仿的效果圖沒有做到辰晕。
  • 原圖加載毛玻璃的效果比較快确虱,你的這個打開app白屏好幾秒校辩。
  • 原圖fragment中有列表,你的沒有惠赫,為什么我放上ListView之后汉形,標(biāo)題欄不能折疊等等

現(xiàn)在我們就從以上三個問題,進行修改和加強逗威,優(yōu)化凯旭,在講之前使套,先看效果圖對比,如果感覺好嫉柴,你們再繼續(xù)往下看奉呛。

稀土掘金原圖

之前的模仿效果圖

增強瞧壮,修改咆槽,優(yōu)化后的效果圖

解決方法

第一個問題

大致的方法過程就是如下:

  • 配置window的各項參數(shù)秦忿,使?fàn)顟B(tài)欄透明
    /**
     * 使?fàn)顟B(tài)欄透明
     */
    @TargetApi(Build.VERSION_CODES.KITKAT)
    private static void transparentStatusBar(Activity activity) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
            activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
        } else {
            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        }
    }
  • 設(shè)置根布局的參數(shù)
    /**
     * 設(shè)置根布局參數(shù)
     */
    private static void setRootView(Activity activity) {
        ViewGroup rootView = (ViewGroup) ((ViewGroup) activity.
        findViewById(android.R.id.content)).getChildAt(0);
        rootView.setFitsSystemWindows(true);
        rootView.setClipToPadding(true);
    }
  • 添加半透明矩形條
    /**
     * 添加半透明矩形條
     *
     * @param activity       需要設(shè)置的 activity
     * @param statusBarAlpha 透明值
     */
    private static void addTranslucentView(Activity activity, int statusBarAlpha) {
        ViewGroup contentView = (ViewGroup) activity.findViewById(android.R.id.content);
        // 移除半透明矩形,以免疊加
        if (contentView.getChildCount() > 1) {
            contentView.getChildAt(1).setBackgroundColor(Color.argb(statusBarAlpha, 0, 0, 0));
        } else {
            contentView.addView(createTranslucentStatusBarView(activity, statusBarAlpha));
        }
    }

大致的步驟就是這樣法褥,我這里用的是別人封裝好的酬屉,github地址是:https://github.com/laobie/StatusBarUtil 大家可以去參考使用呐萨。

第二個問題

以前的毛玻璃效果莽囤,是我從網(wǎng)上找的一個毛玻璃算法朽缎,然后搞出來的谜悟,確實很慢葡幸,然后我在網(wǎng)上找更快的加載的速度的算法贺氓,找來找去辙培,網(wǎng)上都是那幾種,最快的也得白屏四秒搀别,最后終于搞定了一個快的尾抑,真的是腦子不靈活了蛮穿,光想著毛玻璃了,不是glide也支持毛玻璃单刁,支持模糊效果嗎府适?一用它確實快檐春。就是這么解決的疟暖。怎么使用的,我相信用過glide的都會吧骨望,如果你沒用過欣舵,就去下載源碼吧缘圈,里面寫的非常簡單袜蚕。

第三個問題

CoordinatorLayout協(xié)同布局在一般只結(jié)合RecyclerView和NestedScrollView使用牲剃,所以你用ListView沒有效果颠黎,如果你硬要用ListView那就比較麻煩了,倒不是做不到狭归。你去分析源碼可以知道RecyclerView和NestedScrollView它們都實現(xiàn)了一個接口NestedScrollingChild文判,所以我們可以自定義ListView戏仓,實現(xiàn)NestedScrollingChild接口就好。你也可以使用listView.setNestedScrollingEnabled(true)也行敷待,也能做到榜揖,但是貌似這兩種方法只能支持在android5.0以上的手機才能用抗蠢,所以還是建議大家使用RecyclerView就沒那么多事了迅矛。

這就是Material Design系列第六篇之《Android Material Design系列之CoordinatorLayout秽褒,CollapsingToolbarLayout等》。

這個系列的講解和實例都會整理在一個demo里森瘪,demo的github地址:https://github.com/loonggg/MaterialDesignDemo 去star吧,我會慢慢完善的悴势。

仿稀土掘金效果的demo也放到上邊的那個綜合demo里了,當(dāng)然單獨的demo效果也修改了特纤,地址是:https://github.com/loonggg/CoordinatorLayoutDemo

MaterialDesign系列文章推薦:
Android Material Design系列之RecyclerView和CardView(可點擊)
Android Material Design系列之Toolbar(可點擊)
Android Material Design系列之Navigation Drawer(可點擊)
Android Material Design系列之FloatingActionButton和Snackbar(可點擊)
Android Material Design系列之Palette(可點擊)

擴展篇(可點擊):
通過來模仿稀土掘金個人頁面的布局來學(xué)習(xí)使用 CoordinatorLayout
CoordinatorLayout的使用如此簡單

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市镰官,隨后出現(xiàn)的幾起案子泳唠,更是在濱河造成了極大的恐慌,老刑警劉巖笨腥,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脖母,死亡現(xiàn)場離奇詭異谆级,居然都是意外死亡哨苛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亿蒸,“玉大人边锁,你說我怎么就攤上這事波岛≡蚩剑” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵彻桃,是天一觀的道長晾蜘。 經(jīng)常有香客問我,道長剔交,這世上最難降的妖魔是什么肆饶? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮省容,結(jié)果婚禮上抖拴,老公的妹妹穿的比我還像新娘。我一直安慰自己腥椒,他們只是感情好阿宅,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著笼蛛,像睡著了一般洒放。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上滨砍,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天往湿,我揣著相機與錄音领追,去河邊找鬼。 笑死些膨,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窑邦,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼导盅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骚灸,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了邀摆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敷矫。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情端壳,我是刑警寧澤照捡,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布悲立,位于F島的核電站赫悄,受9級特大地震影響写隶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望培漏。 院中可真熱鬧,春花似錦咒锻、人聲如沸守屉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至紊扬,卻和暖如春蜒茄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背楚殿。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工脆粥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冠绢,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓夏哭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,735評論 25 707
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,406評論 2 45
  • 晚上散步去小區(qū)外圍散步脾还,在這一片居住了十一年了伴箩,與十年前相比,這里完全變了模樣鄙漏,高樓林立嗤谚,馬路寬闊,南河道兩邊綠樹...
    馬嚴(yán)閱讀 244評論 0 1
  • 很長時間,很多人都不理解Grace為什么要去上班桦踊,因為她的先生的家境足以讓她下半輩子都毫無憂慮椅野。 她生完孩子之后,...
    修女愛古箏閱讀 192評論 0 0
  • 我最疼愛的人 籍胯,求你們慢點老去竟闪。 人活世間,有太多的無奈杖狼,太多的牽絆炼蛤,太多的掛念。如果可以蝶涩,不理朋,是一定要絮识,請求時光...
    Tan小妮同學(xué)閱讀 116評論 0 0