成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Android Material Design系列之CoordinatorLayout等

Little_XM / 1101人閱讀

摘要:原圖加載毛玻璃的效果比較快,你的這個打開白屏好幾秒。這就是系列第六篇之系列之,等。這個系列的講解和實例都會整理在一個里,的地址去吧,我會慢慢完善的。

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

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

問題

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

原圖是沉浸狀態(tài)欄,你的這個模仿的效果圖沒有做到。

原圖加載毛玻璃的效果比較快,你的這個打開app白屏好幾秒。

原圖fragment中有列表,你的沒有,為什么我放上ListView之后,標(biāo)題欄不能折疊等等

現(xiàn)在我們就從以上三個問題,進(jìn)行修改和加強(qiáng),優(yōu)化,在講之前,先看效果圖對比,如果感覺好,你們再繼續(xù)往下看。

稀土掘金原圖

之前的模仿效果圖

增強(qiáng),修改,優(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以上的手機(jī)才能用,所以還是建議大家使用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(可點擊)
擴(kuò)展篇(可點擊):
通過來模仿稀土掘金個人頁面的布局來學(xué)習(xí)使用 CoordinatorLayout
CoordinatorLayout的使用如此簡單

歡迎關(guān)注微信公眾號:非著名程序員(smart_android),每天每周定時推送原創(chuàng)技術(shù)文章。所有技術(shù)文章, 均會在微信訂閱號首發(fā),關(guān)注微信公眾號可以及時獲得技術(shù)文章推送。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64898.html

相關(guān)文章

  • Android Material Design系列FloatingActionButton和Sna

    摘要:今天主講的系列的兩個控件都不難,所以一起講了,分別是和。之所以出現(xiàn)這么久了,不太火,不太常用,估計跟他懸浮有關(guān),容易擋住其他內(nèi)容。那我們現(xiàn)在就研究改如何在滑動列表時隱藏和顯示這個懸浮按鈕。其實也非常簡單,和修改樣式的過程差不多。 今天主講的Material Design系列的兩個控件都不難,所以一起講了,分別是FloatingActionButton和Snackbar。這個系列都是主講...

    iKcamp 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<