關於Snackbar的認識 用於代替toast

關於Snackbar的認識 用於代替toast 


Snackbar.make(view, "This is a message! ", Snackbar.LENGTH_LONG).show();                                                       

參數1,view是誰都行 主要是activity佈局上的一個view即可,

Snackbar.make(view, "This is a message! ", Snackbar.LENGTH_LONG)
        .setAction("Action"new View.OnClickListener() {  //給ACTION註冊點擊事件
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"111",Toast.LENGTH_SHORT).show();
            }
        }).setActionTextColor(Color.RED)
        .show();
snackbar設置背景顏色
Snackbar bar=Snackbar.make(rl_activity"it is Snackbar",Snackbar.LENGTH_SHORT);
View v=bar.getView();
v.setBackgroundColor(Color.GREEN);
bar.show();



方式二:

思路:既然有虛擬按鍵欄遮擋Snackbar,那麼我們就在顯示Snackbar的同時隱藏掉虛擬按鍵欄,這樣屏幕底部就只有Snackbar,也就不存在遮擋問題了,但是有兩點需要注意,第一點,配置隱藏虛擬按鍵欄的flag時要注意配置全面一點,不然會出現點擊屏幕又彈出虛擬按鍵欄的情況,第二點,當Snackbar消失時,記得再次把虛擬按鍵欄顯示出來,不然屏幕底部會多出一塊佈局,很難看.不過以上這兩點都不用操心了,我已經在代碼中配置好了,直接複製粘貼就能用,代碼需要注意的地方都已經註釋清楚了.代碼如下:

  1. /** 
  2.     * 展示一個SnackBar 
  3.     */  
  4.    public void showSnackBar(String message) {  
  5.        //去掉虛擬按鍵  
  6.        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION  
  7.                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION //隱藏虛擬按鍵欄  
  8.                | View.SYSTEM_UI_FLAG_IMMERSIVE //防止點擊屏幕時,隱藏虛擬按鍵欄又彈了出來  
  9.        );  
  10.        final Snackbar snackbar = Snackbar.make(getWindow().getDecorView(), message, Snackbar.LENGTH_INDEFINITE);  
  11.        snackbar.setAction("知道了", new View.OnClickListener() {  
  12.            @Override  
  13.            public void onClick(View v) {  
  14.                snackbar.dismiss();  
  15.                //隱藏SnackBar時記得恢復隱藏虛擬按鍵欄,不然屏幕底部會多出一塊空白布局出來,和難看  
  16.                getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);  
  17.            }  
  18.        }).show();  
  19.    }  

這兩種方法都可以實現效果,選擇哪種方式都ok.

動態圖錄制完有點卡頓,實際效果很流暢





https://github.com/AndreiD/TSnackBar從頂部顯示的snackbar

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章