MaterialDesign

1.Toolbar

?在記錄Toolbar之前需要介紹一下ActionBar瓜浸,每個(gè)活動最頂部的那個(gè)標(biāo)題欄就是ActionBar船侧,由于ActionBar的設(shè)計(jì)原因,被限定只能位于活動的頂部缔御,從而不能實(shí)現(xiàn)一些MaterialDesign的效果竟块。

?由于項(xiàng)目中的AndroidManifest文件中都默認(rèn)指定了AppTheme的主題,這個(gè)主題中自帶ActionBar≌爰ⅲ現(xiàn)在準(zhǔn)備使用Toolbar來替代ActionBar厂抽,需要指定一個(gè)不帶ActionBar的主題(Theme.AppCompat.NoActionBar)。

?接下來引入Toolbar控件丁眼,來替代ActionBar筷凤。

<android.support.v7.widget.Toolbar
    高度設(shè)置為ActionBar的高度
    android:layout_height="?attr/actionBarSize"
    彈出Toolbar欄上彈出的菜單的主題
    app:popupTheme="@style/ThemeOverlay.App.compat.Light"
/>

2.DrawerLayout----滑動菜單布局

?所謂滑動菜單就是將一些菜單選項(xiàng)隱藏起來,而不是放在主屏幕上苞七,然后通過滑動的方式將菜單顯示出來嵌施。
?DrawerLayout是一個(gè)布局,在布局允許放入兩個(gè)直接子控件莽鸭,第一個(gè)子控件是主屏幕中顯示的內(nèi)容吗伤,第二個(gè)滑動菜單中顯示的內(nèi)容第二個(gè)子控件android:layout_gravity屬性指定滑動方向硫眨,一般指定為start足淆。


3.NavigationView----導(dǎo)航頁面

?menu是用來在NavigationView中顯示具體的菜單項(xiàng)的,headerLayout則是用來在NavigationView中顯示頭部布局的礁阁。

<android.support.design.widget.NavigationView
        app:menu="menu/nav_menu"
        app:headerLayout="@layout/nav_header "/>

4.FloatingActionButton----懸浮按鈕


5.Snackbar

?Snackbar是更加先進(jìn)的提示工具巧号,它允許在提示當(dāng)中加入一個(gè)可交互按鈕,當(dāng)用戶點(diǎn)擊按鈕的時(shí)候可以執(zhí)行一些額外的邏輯操作(撤銷一些操作)姥闭。

Snackbar.make(view, "數(shù)據(jù)已刪除", Snackbar.LENGTH_SHORT)
                //設(shè)置撤銷動作
               .setAction("撤銷", new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(MainActivity.this, "Data restored", 
                                Toast.LENGTH_SHORT).show();
                          }
                      })
                  //設(shè)置回調(diào)
               .setCallback(new Snackbar.Callback() {
            @Override
            public void onDismissed(Snackbar snackbar, int event) {

                switch (event) {
                    case Snackbar.Callback.DISMISS_EVENT_CONSECUTIVE:
                    case Snackbar.Callback.DISMISS_EVENT_MANUAL:
                    case Snackbar.Callback.DISMISS_EVENT_SWIPE:
                    case Snackbar.Callback.DISMISS_EVENT_TIMEOUT:
                        doDelete();//執(zhí)行刪除操作
                        Toast.makeText(MainActivity.this, "刪除成功", Toast.LENGTH_SHORT).show();
                        break;
                    case Snackbar.Callback.DISMISS_EVENT_ACTION:
                        //與Action中的onClick重復(fù)                        
                        Toast.makeText(MainActivity.this, "撤銷了刪除操作", Toast.LENGTH_SHORT).show();
                        break;

                }
            }

            @Override
            public void onShown(Snackbar snackbar) {
                super.onShown(snackbar);
                Log.i(TAG, "onShown");
            }
        }) .show();

?調(diào)用Snackbar的make()方法創(chuàng)建一個(gè)Snackbar對象丹鸿,make方法的第一個(gè)參數(shù)需要傳入一個(gè)View,這個(gè)View來自動查找最外層的布局棚品,用于展示Snackbar靠欢。第二個(gè)參數(shù)就是Snackbar中顯示的內(nèi)容第三個(gè)參數(shù)就是顯示的時(shí)長铜跑。


6.CoordinatorLayout

?CoordinatorLayout可以說是一個(gè)加強(qiáng)版的FrameLayout门怪,可以監(jiān)聽其所有子控件的各種事件,然后自動做出最為合理的響應(yīng)锅纺。CoordinatorLayout監(jiān)聽到Snackbar的彈出事件(Snackbar.make傳入CoordinatorLayout的子控件)掷空,那么它會自動將內(nèi)部的FloatingActionButton向上偏移,從而保證不會被Snackbar擋住。


7.AppBarLayout----結(jié)合CoordinatorLayout和CollaspingToolbarLyaout使用

8.SwipeRefreshLayout----下拉刷新

9.CollapsingToolbarLayout----可折疊式標(biāo)題欄

10.NestScrollView----嵌套滑動

11.android:fitsSystemWindows----充分利用系統(tǒng)狀態(tài)欄空間坦弟,表示該控件會出現(xiàn)在系統(tǒng)狀態(tài)欄中护锤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市酿傍,隨后出現(xiàn)的幾起案子烙懦,更是在濱河造成了極大的恐慌,老刑警劉巖拧粪,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件修陡,死亡現(xiàn)場離奇詭異沧侥,居然都是意外死亡可霎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進(jìn)店門宴杀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來癣朗,“玉大人,你說我怎么就攤上這事旺罢】跤啵” “怎么了?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵扁达,是天一觀的道長正卧。 經(jīng)常有香客問我,道長跪解,這世上最難降的妖魔是什么炉旷? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮叉讥,結(jié)果婚禮上窘行,老公的妹妹穿的比我還像新娘。我一直安慰自己图仓,他們只是感情好罐盔,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著救崔,像睡著了一般惶看。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上六孵,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天,我揣著相機(jī)與錄音狸臣,去河邊找鬼莹桅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的诈泼。 我是一名探鬼主播懂拾,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼铐达!你這毒婦竟也來了岖赋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤瓮孙,失蹤者是張志新(化名)和其女友劉穎唐断,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杭抠,經(jīng)...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡脸甘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了偏灿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丹诀。...
    茶點(diǎn)故事閱讀 38,687評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖翁垂,靈堂內(nèi)的尸體忽然破棺而出铆遭,到底是詐尸還是另有隱情,我是刑警寧澤沿猜,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布枚荣,位于F島的核電站,受9級特大地震影響啼肩,放射性物質(zhì)發(fā)生泄漏橄妆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一疟游、第九天 我趴在偏房一處隱蔽的房頂上張望呼畸。 院中可真熱鬧,春花似錦颁虐、人聲如沸蛮原。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽儒陨。三九已至,卻和暖如春笋籽,著一層夾襖步出監(jiān)牢的瞬間蹦漠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工车海, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留笛园,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像研铆,于是被迫代替她去往敵國和親埋同。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,576評論 2 349