AndroidStudyDemo之Android6.x新控件介紹(三)

Android6.x介紹(三)

作者:李旺成

時間:2016年4月23日


接上篇:AndroidStudyDemo之Android6.x新控件介紹(二)

六、CoordinatorLayout

先看效果:

CoordinatorLayout 效果演示

簡介

CoordinatorLayout 命名中帶有協(xié)調(diào)的意思,它的作用正是協(xié)調(diào)(Coordinate)其他組件, 實(shí)現(xiàn)聯(lián)動,CoordinatorLayout 實(shí)現(xiàn)了多種 Material Design 中提到的滾動效果。

  • 超級 FrameLayout
  • CoordinatorLayout 使用新的思路通過協(xié)調(diào)調(diào)度子布局的形式實(shí)現(xiàn)觸摸影響布局的形式產(chǎn)生動畫效果
  • 提供了幾種不用寫動畫代碼就能工作的動畫效果,如下:
    1.讓浮動操作按鈕上下滑動,為Snackbar留出空間
    2.擴(kuò)展或者縮小 Toolbar 或者頭部,讓主內(nèi)容區(qū)域有更多的空間
    3.控制哪個 View 應(yīng)該擴(kuò)展還是收縮,以及其顯示大小比例,包括視差滾動效果動畫

看下官方的介紹:

CoordinatorLayout 類

上圖圈出了幾個關(guān)鍵點(diǎn),有兩個相對來說“較新的概念”,從這看出 CoordinatorLayout 控件可能比較復(fù)雜的,不過不用著急,我們可以抽絲剝繭,逐步深入的去學(xué)習(xí)它。

CoordinatorLayout 繼承自 ViewGroup,官方介紹的第一句話就是:“CoordinatorLayout is a super-powered FrameLayout .”。從繼承結(jié)構(gòu)來看,收獲不大,不過有個地方要注意,那就是它實(shí)現(xiàn)了一個接口:NestedScrollingParent。

簡單介紹下 NestedScrolling

在 Android L 中提供了一套 API 來支持嵌套(或者說嵌入)的滑動效果(Support V 4 提供了兼容 API),可以稱之為嵌套滑動機(jī)制(NestedScrolling)。通過 NestedScrolling,能實(shí)現(xiàn)很多很復(fù)雜的滑動效果。

NestedScrolling 提供了一套父 View 和子 View 滑動交互機(jī)制。要完成這樣的交互,父 View 需要實(shí)現(xiàn) NestedScrollingParent 接口,而子 View 需要實(shí)現(xiàn) NestedScrollingChild 接口。

關(guān)于 NestedScrolling,有興趣的可以去看看這篇文章:Android NestedScrolling 實(shí)戰(zhàn),這里就不展開了。

CoordinatorLayout 實(shí)現(xiàn)了 NestedScrollingParent 接口,其包裹的子控件如果要想能更好的配合 CoordinatorLayout,就需要實(shí)現(xiàn) NestedScrollingChild 接口。

簡單使用

1、Snackbar 與 FAB 浮動效果
先看效果:

Snackbar 與 FAB 浮動效果

上圖演示的效果,可以說是 CoordinatorLayout 最簡單的一種使用了。

Snackbar 一般出現(xiàn)在屏幕的底部,這容易覆蓋住靠近底部的 FAB(FloatingActionButton)。為了給 Snackbar 留出空間,F(xiàn)AB 需要向上移動。

實(shí)現(xiàn)這種效果很簡單(其實(shí)在 Snackbar 中已經(jīng)用了,這里再稍微說兩句),只要將 FAB 放到 CoordinatorLayout 布局中,F(xiàn)AB 就將自動產(chǎn)生向上移動的動畫。FAB 有一個默認(rèn)的 behavior來檢測 Snackbar 的添加并讓按鈕在 Snackbar 之上呈現(xiàn)上移與 Snackbar 等高的動畫。

看代碼:

<?xml version="1.0" encoding="utf-8"?>
<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_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!-- 任何其他布局 -->
    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:layout_margin="16dp"
        android:clickable="true"
        android:onClick="onClick"
        android:src="@mipmap/ic_check_white"
        app:layout_anchorGravity="bottom|right|end"/>
</android.support.design.widget.CoordinatorLayout>
// 點(diǎn)擊回調(diào)
public void onClick(View v) {
    Snackbar snackbar = Snackbar.make(mRootCL,
            "我是普通 Snackbar", Snackbar.LENGTH_SHORT);
    snackbar.show();
}

2、Toolbar 的顯示與隱藏
先看效果:

Toolbar 的顯示與隱藏效果

為了讓 Toolbar 能夠響應(yīng)滾動事件,這里要用到一個新控件 AppBarLayout,該控件會在下面介紹,這里先不討論,直接用。

來看 Layout 中是如何使用的:

<?xml version="1.0" encoding="utf-8"?>
<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_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat">
        <android.support.v7.widget.Toolbar
            android:id="@+id/tb_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:minHeight="?attr/actionBarSize"
            android:background="@color/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways" />
    </android.support.design.widget.AppBarLayout>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:layout_margin="16dp"
        android:clickable="true"
        android:onClick="onClick"
        android:src="@mipmap/ic_check_white"
        app:layout_anchor="@id/rv_content"
        app:layout_anchorGravity="bottom|right|end"/>
</android.support.design.widget.CoordinatorLayout>

首先,讓 AppBarLayout 作為 CoordinatorLayout 的第一個子 View,將 Toolbar 包裹在其中。
AppBarLayout 里面定義的 Toolbar 需要設(shè)置 app:layout_scrollFlags 屬性,app:layout_scrollFlags 屬性里面必須至少啟用scroll 這個 flag,這樣這個 View 才會滾動出屏幕,否則它將一直固定在頂部。

app:layout_scrollFlags 屬性可以使用如下 flag:

  • scroll:所有想滾動出屏幕的 View 都需要設(shè)置這個 flag,沒有設(shè)置這個 flag 的 View 將被固定在屏幕頂部
  • enterAlways:一旦向上滾動這個 View 就可見,這個 flag 讓任意向下的滾動都會導(dǎo)致該 View 變?yōu)榭梢姡瑔⒂每焖佟胺祷啬J健?/li>
  • enterAlwaysCollapsed:顧名思義,這個 flag 定義的是何時進(jìn)入(已經(jīng)消失之后何時再次顯示)。假設(shè)你定義了一個最小高度(minHeight)同時 enterAlways 也定義了,那么 View 將在到達(dá)這個最小高度的時候開始顯示,并且從這個時候開始慢慢展開,當(dāng)滾動到頂部的時候展開完
  • exitUntilCollapsed:同樣顧名思義,這個 flag 定義何時退出,當(dāng)你定義了一個 minHeight,這個 View 將在滾動到達(dá)這個最小高度的時候消失。

特別注意:所有使用 scroll flag 的 View 都必須定義在沒有使用 scroll flag 的 View 前面,這樣才能確保所有的 View 從頂部退出,留下固定的元素。

PS:CoordinatorLayout 還提供了 layout_anchor 和 layout_anchorGravity 屬性一起配合使用,可以用于放置 floating view,比如FloatingActionButton 與其他 View 的相對位置。
(參考自:Android應(yīng)用Design Support Library完全使用實(shí)例

然后,定義 AppBarLayout 與 RecyclerView 之間的聯(lián)系(可以使用任意支持嵌套滾動的 View 都可以,在這里使用了 RecyclerView 來演示)。在 RecyclerView 中添加屬性 app:layout_behavior。

support library 包含了一個特殊的字符串資源 @string/appbar_scrolling_view_behavior,它和 AppBarLayout.ScrollingViewBehavior 相匹配,用來通知 AppBarLayout 這個特殊的 View 何時發(fā)生了滾動事件,這個 Behavior 需要設(shè)置在觸發(fā)事件(滾動)的 View 之上。
(參考自:Android應(yīng)用Design Support Library完全使用實(shí)例

最后,其實(shí)在完成上面兩步之后,就已經(jīng)完成了 Toolbar 隨著 RecyclerView 顯示隱藏的功能,剩下的就只需要為 RecyclerView 填充數(shù)據(jù)即可:

private void initData() {
    LinearLayoutManager layoutManager = new LinearLayoutManager(this);
    layoutManager.setOrientation(OrientationHelper.VERTICAL);
    // 設(shè)置布局管理器
    mContentRV.setLayoutManager(layoutManager);
    ArrayList dataList = new ArrayList<>(100);
    for (int i = 0; i < 100; i++) {
        dataList.add("DIY-ITEM:" + i);
    }
    RecyclerAdapter adapter = new RecyclerAdapter(dataList);
    mContentRV.setAdapter(adapter);
}

為了使 Toolbar 有滑動效果,必須做到如下三點(diǎn):

  1. CoordinatorLayout 作為布局的父布局容器
  2. 給需要滑動的組件設(shè)置 app:layout_scrollFlags=”scroll|enterAlways” 屬性
  3. 給滑動的組件設(shè)置 app:layout_behavior 屬性
    (參考自:android CoordinatorLayout使用

小結(jié)

CoordinatorLayout 還可以結(jié)合其他控件實(shí)現(xiàn)很多很炫的效果,接下來要介紹的這兩個控件就需要和 CoordinatorLayout,所以,這里不繼續(xù)展開 CoordinatorLayout 的相關(guān)內(nèi)容了。

七、AppBarLayout

先看效果:

AppBarLayout 效果演示1
AppBarLayout 效果演示2

簡介

AppBarLayout 是 Design Support Library 中提供的一個容器控件,是為了 Material Design 設(shè)計(jì)的 App Bar。

  • MD風(fēng)格的滑動Layout
  • 把容器內(nèi)的組件全部作為 AppBar
  • 就是一個 純?nèi)萜黝悾浜?ToolBar 與 CollapsingToolbarLayout 等使用

看下官方介紹:

AppBarLayout 類

繼承自 LinearLayout,并且默認(rèn)是垂直方向的 —— “ AppBarLayout is a vertical LinearLayout ...”。從官方的示例代碼中可以看到,它的使用方式和 LinearLayout 沒什么區(qū)別。

那看看它的屬性:

AppBarLayout 屬性

注意屬性介紹里面的這句話:This only takes effect when this view is a direct child of a CoordinatorLayout.

也就是說 AppBarLayout 必須是第一個嵌套在 CoordinatorLayout 里面的子View,該屬性才能起作用(-_-',貌似示例代碼就不是這樣的,這要鬧哪樣...)。

簡單使用

1、單獨(dú)使用
單獨(dú)使用,把它當(dāng)作 LinearLayout 就可以了,來看下效果:

AppBarLayout 直接使用效果

當(dāng) RecyclerView 滑動的時候,Toolbar 并沒有任何反應(yīng)。AppBarLayout 與 LinearLayout 在這里沒什么區(qū)別,所以一般也不會單獨(dú)使用 AppBarLayout。

上代碼:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/rl_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat">
        <android.support.v7.widget.Toolbar
            android:id="@+id/tb_title"
            app:layout_scrollFlags="scroll|enterAlways"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colorPrimary"
            android:minHeight="?attr/actionBarSize" />
        <android.support.design.widget.TabLayout
            android:id="@+id/tl_tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </android.support.design.widget.AppBarLayout>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/appbar" />
    <android.support.design.widget.FloatingActionButton
        app:layout_anchor="@id/rv_content"
        app:layout_anchorGravity="bottom|right|end"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_margin="16dp"
        android:clickable="true"
        android:onClick="onClick"
        android:src="@mipmap/ic_check_white" />
</RelativeLayout>

2、CoordinatorLayout 與 AppBarLayout配合
先看效果:

CoordinatorLayout與AppBarLayout配合
Toolbar與TabLayout都隱藏

與 1、 中的效果對比,可以發(fā)現(xiàn) AppBarLayout 中的控件可以隨著 RecyclerView 的滑動而顯示或隱藏。代碼和簡單:

<?xml version="1.0" encoding="utf-8"?>
<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_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat">
        <android.support.v7.widget.Toolbar
            android:id="@+id/tb_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:minHeight="?attr/actionBarSize"
            android:background="@color/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways" />
        <android.support.design.widget.TabLayout
            android:id="@+id/tl_tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </android.support.design.widget.AppBarLayout>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:layout_margin="16dp"
        android:clickable="true"
        android:onClick="onClick"
        android:src="@mipmap/ic_check_white"
        app:layout_anchor="@id/rv_content"
        app:layout_anchorGravity="bottom|right|end"/>
</android.support.design.widget.CoordinatorLayout>

在 Java 代碼里面沒什么可說的,這里就不列代碼了,有需要的可從文末鏈接自行下載 Demo。

注意: AppBarLayout 中的子控件必須設(shè)置了 app:layout_scrollFlags 屬性,而且該屬性至少設(shè)置了 ”scroll“(原因前面說過),才有可能實(shí)現(xiàn)隨著 RecyclerView 的滑動而顯示隱藏。

注意事項(xiàng)

  1. 注意 AppBarLayout 的 expanded 屬性的使用特性
  2. 就是 ”六、“ 中所講的,為了使 Toolbar 有滑動效果,必須做到那三點(diǎn)。這里就不再贅述,該控件的使用還是很簡單的。

八、CollapsingToolbarLayout

先看看效果:

CollapsingToolbarLayout 使用演示
官方的實(shí)例

簡介

CollapsingToolbarLayout,從名稱上來看這是一個可折疊的 Toolbar 布局,確實(shí)名副其實(shí)。它可以控制包含在其內(nèi)部的控件(如:ImageView、Toolbar)在響應(yīng) layout_behavior 事件時作出相應(yīng)的 scrollFlags 滾動事件(移除屏幕或固定在屏幕頂端),形成各種視覺效果。

  • 可折疊MD風(fēng)格ToolbarLayout
  • 可以折疊的Toolbar

來看看官方的介紹:

CollapsingToolbarLayout 類

繼承自 Framelayout,這個哥們最近出鏡率很高??!文檔上說,CollapsingToolbarLayout 是 Toolbar 的一個”包裝“。不翻譯文檔了,F(xiàn)ramelayout 很熟悉了,但作用不大,來看看 CollapsingToolbarLayout 提供的屬性。

CollapsingToolbarLayout 屬性

文檔基本解釋了,這里先不多說,先用起來。

簡單使用

Toolbar 的折疊效果

先看效果:

折疊效果

要實(shí)現(xiàn)上述效果比較簡單,主要是在布局中設(shè)置:

<?xml version="1.0" encoding="utf-8"?>
<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_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat">
        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/ctl_title"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:title="DIY-Green"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="46dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">
            <android.support.v7.widget.Toolbar
                android:id="@+id/tb_title"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_scrollFlags="scroll|enterAlways"/>
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_content"
        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。
然后,設(shè)置 CollapsingToolbarLayout 的app:layout_scrollFlags 屬性,如 "scroll|exitUntilCollapsed"。

注意,Title 要在 CollapsingToolbarLayout 上設(shè)置,而不能在 Toolbar 中設(shè)置了。

視差效果

先看效果:

視差效果1
視差效果2

這個效果看起挺炫的,其實(shí)也不難,看代碼就明白了:

<?xml version="1.0" encoding="utf-8"?>
<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_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="240dp"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat">
        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/ctl_title"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="46dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">
            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="centerCrop"
                android:fitsSystemWindows="true"
                android:src="@mipmap/bg_drawer_header"
                app:layout_collapseMode="parallax" />
            <android.support.v7.widget.Toolbar
                android:id="@+id/tb_title"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />
    <android.support.design.widget.FloatingActionButton
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        app:layout_anchor="@id/appbar"
        app:layout_anchorGravity="bottom|right|end"
        android:src="@mipmap/ic_check_white"
        android:layout_margin="@dimen/activity_horizontal_margin"
        android:clickable="true"/>
</android.support.design.widget.CoordinatorLayout>

如示例中所示,為了圖片在折疊的時候淡入淡出的效果,需要設(shè)置 app:layout_collapseMode 屬性為 "parallax"。

CoordinatorLayout 還提供了一個 layout_anchor 的屬性,連同 layout_anchorGravity 一起,可以用來放置與其他視圖關(guān)聯(lián)在一起的懸浮視圖(如 FloatingActionButton)。(參考自:android CoordinatorLayout使用

小結(jié)

CoordinatorLayout 還有很多很炫的功能有待挖掘,這里不打算深入探討了。還有一個比較重要的類沒有介紹,那就是 Behavior,系統(tǒng)提供了一些 Behavior,我們也可以自定義。打算在討論動畫的時候再好好介紹下 Behavior,CoordinatorLayout 的介紹就到這里了。

對 Android 6.x 的新控件介紹就到這里了。關(guān)于有些控件可能不是 Android 6.x 提供這個問題,我這里想稍微說一下。請大家不要在意這些細(xì)節(jié),寫這一系列文章,我的初衷是想提供一個簡明的示例供大家參考,能達(dá)到這個目的就足夠了。本人能力和時間有限,不足和疏漏之處在所難免,請見諒。

項(xiàng)目地址

GitHub

附件

Andoid6思維導(dǎo)圖

參考

CoordinatorLayout與滾動的處理
android CoordinatorLayout使用
Snackbar
浮動操作按鈕
默認(rèn)的 behavior
CoordinatorLayout 與浮動操作按鈕
Android NestedScrolling 實(shí)戰(zhàn)
Android Design Support Library使用詳解
Android Material Design:CoordinatorLayout與NestedScrollView
Android Material Design:基于CoordinatorLayout實(shí)現(xiàn)向上滾動導(dǎo)航條ToolBar滾出、向下滾動導(dǎo)航條滾出
android CoordinatorLayout使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,781評論 25 709
  • CoordinatorLayout與滾動的處理 CoordinatorLayout實(shí)現(xiàn)了多種Material De...
    cxm11閱讀 6,799評論 1 15
  • 悄悄地去努力,然后等變厲害之后,蹦出來把曾經(jīng)看不起自己的人嚇一大跳,才是你現(xiàn)在需要當(dāng)作目標(biāo)的事。
    野人8093閱讀 372評論 0 0
  • 想象一直都是很美好,現(xiàn)實(shí)都是當(dāng)頭一棒,現(xiàn)在深深的體會到了。 今天開始干了一點(diǎn)活了,也可以說創(chuàng)業(yè)開始了,剛開始從內(nèi)心...
    陳陳才華閱讀 277評論 0 0
  • 今天的課程內(nèi)容有點(diǎn)多,再加上身體不舒服,腦子都是蒙圈狀態(tài)。 這應(yīng)該是培訓(xùn)以來,最不在狀態(tài)的一天。 可到了晚上整理一...
    盈盈1230閱讀 255評論 0 0

友情鏈接更多精彩內(nèi)容