Snackbar的簡(jiǎn)單使用

Snackbar 快餐店

與Toast的區(qū)別:

  • 比toast更加好桐绒,Snackbar 可以響應(yīng)點(diǎn)擊事件
  • Snackbar 同一時(shí)間有且只有一個(gè)在顯示逝钥。
  • Snackbar 上不要有圖標(biāo)
  • Snackbar上 Action 只能有一個(gè)覆致。
  • 如果有懸浮按鈕 floating action button的話衙吩,snackbar 在彈出的時(shí)候 不要覆蓋這個(gè)Button.
  • 此外我個(gè)人認(rèn)為 Snackbar 在一定程度上可以替代dialog的某些應(yīng)用場(chǎng)景所森。比如以前網(wǎng)絡(luò)不通的情況下 我們登陸失敗位衩,會(huì)給一個(gè)dialog提示裆蒸,現(xiàn)在就可以用snackbar 來(lái)做這個(gè)有action的提示 更加方便快捷。

Snackbar的簡(jiǎn)單使用:

一糖驴、導(dǎo)入support design 庫(kù)

在app的build gradle文件加入compile 'com.android.support:design:22.2.0'

二僚祷、snackbar 需要有一個(gè)父控件所以 我們可以隨便找一個(gè)View(textview,button)用來(lái)做他的父控件。

我們知道一個(gè)布局的最最最最外層有一個(gè)DecorView,而這個(gè)view就是我們通用的view.

在activity中我們這樣獲取DecorView:getwindow().getDecorView();就得到了這個(gè)最外層的view.

三贮缕、簡(jiǎn)單使用

與Toast的用法幾乎一毛一樣

Snackbar.make(view,"呵呵噠",Snackbar.LENGTH_INDEFINITE).show();

四辙谜、實(shí)現(xiàn)更多功能

  1. 設(shè)置點(diǎn)擊事件
Snackbar.make(view,"呵呵噠",Snackbar.LENGTH_INDEFINITE)
        .setAction("fuck you!", new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "once again fuck you", Toast.LENGTH_SHORT).show();
            }
        }).show();
  1. 設(shè)置點(diǎn)擊事件字體顏色
Snackbar.make(view, "呵呵噠", Snackbar.LENGTH_INDEFINITE)
                .setActionTextColor(Color.YELLOW)   //設(shè)置點(diǎn)擊事件字體顏色
                .setAction("fuck you!", new View.OnClickListener() {    //設(shè)置事件
                    @Override
                    public void onClick(View view) {
                        Toast.makeText(MainActivity.this, "once again fuck you", Toast.LENGTH_SHORT).show();
                    }
                }).show();
  1. 設(shè)置回調(diào)方法
Snackbar.make(view,"呵呵噠",Snackbar.LENGTH_SHORT).setCallback(new Snackbar.Callback() {
            @Override
            public void onDismissed(Snackbar snackbar, int event) {    //銷毀時(shí)
                super.onDismissed(snackbar, event);
                Toast.makeText(MainActivity.this,"dismissed",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onShown(Snackbar snackbar) {    //顯示時(shí)
                super.onShown(snackbar);
                Toast.makeText(MainActivity.this,"shown",Toast.LENGTH_SHORT).show();
            }
        }).show();
  1. 設(shè)置背景顏色
TextView tv = (TextView) findViewById(R.id.textView);
Snackbar sb = Snackbar.make(tv,"改變背景",Snackbar.LENGTH_SHORT);
View view2 = sb.getView();
view2.setBackgroundColor(Color.RED);    //設(shè)置背景顏色
sb.show();
  1. 設(shè)置顯示位置
        Snackbar mSnackbar = Snackbar.make(findViewById(R.id.tv), "it is Snackbar", Snackbar.LENGTH_SHORT);
        View v = mSnackbar.getView();
        ViewGroup.LayoutParams vl = v.getLayoutParams();
        CoordinatorLayout.LayoutParams cl = new CoordinatorLayout.LayoutParams(vl.width,vl.height);

        //設(shè)置字體為紅色
        ((TextView) v.findViewById(R.id.snackbar_text)).setTextColor(Color.RED);
        //設(shè)置顯示位置居中
        cl.gravity = Gravity.CENTER;
        v.setLayoutParams(cl);

        //設(shè)置背景色為綠色
        v.setBackgroundColor(Color.GREEN);

        //自定義動(dòng)畫
        //v.setAnimation();

        //設(shè)置icon
        ImageView iconImage=new ImageView(MainActivity.this);
        iconImage.setImageResource(R.mipmap.ic_launcher);

        //icon插入布局
        Snackbar.SnackbarLayout snackbarLayout = (Snackbar.SnackbarLayout) v;
        snackbarLayout.addView(iconImage,0);

        //設(shè)置按鈕為藍(lán)色
        mSnackbar.setActionTextColor(Color.BLUE).setAction("點(diǎn)我", new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            }

         }).show();

樣圖:

c79f3802-ca31-439e-9051-8c1d4a865d23.png

參考:http://blog.csdn.net/qiang_xi/article/details/52449398

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市感昼,隨后出現(xiàn)的幾起案子装哆,更是在濱河造成了極大的恐慌,老刑警劉巖定嗓,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜕琴,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡宵溅,警方通過(guò)查閱死者的電腦和手機(jī)凌简,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)恃逻,“玉大人雏搂,你說(shuō)我怎么就攤上這事】芩穑” “怎么了凸郑?”我有些...
    開(kāi)封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)矛市。 經(jīng)常有香客問(wèn)我芙沥,道長(zhǎng),這世上最難降的妖魔是什么浊吏? 我笑而不...
    開(kāi)封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任而昨,我火速辦了婚禮,結(jié)果婚禮上卿捎,老公的妹妹穿的比我還像新娘配紫。我一直安慰自己,他們只是感情好午阵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布躺孝。 她就那樣靜靜地躺著享扔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪植袍。 梳的紋絲不亂的頭發(fā)上惧眠,一...
    開(kāi)封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音于个,去河邊找鬼氛魁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛厅篓,可吹牛的內(nèi)容都是我干的秀存。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼羽氮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼或链!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起档押,我...
    開(kāi)封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤澳盐,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后令宿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體叼耙,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年粒没,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了筛婉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡革娄,死狀恐怖倾贰,靈堂內(nèi)的尸體忽然破棺而出冕碟,到底是詐尸還是另有隱情拦惋,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布安寺,位于F島的核電站厕妖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏挑庶。R本人自食惡果不足惜言秸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望迎捺。 院中可真熱鬧举畸,春花似錦、人聲如沸凳枝。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至叛买,卻和暖如春砂代,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背率挣。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工刻伊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人椒功。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓捶箱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親动漾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子讼呢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

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