Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> (Android 基礎(十一)) Snackbar

(Android 基礎(十一)) Snackbar

編輯:關於Android編程

介紹

Snackbars provide lightweight feedback about an operation. They show a brief message at the
bottom of the screen on mobile and lower left on larger devices. Snackbars appear above all other
elements on screen and only one can be displayed at a time.

They automatically disappear after a timeout or after user interaction elsewhere on the screen,
particularly after interactions that summon a new surface or activity. Snackbars can be swiped
off screen.

Snackbars can contain an action which is set via
{@link #setAction(CharSequence, android.view.View.OnClickListener)}.
To be notified when a snackbar has been shown or dismissed, you can provide a {@link Callback} via {@link #setCallback(Callback)}.

翻譯:
Snackbar為用戶的一個操作提供輕量級的反饋,他會在手機屏幕的底部或者是大設備的左下方顯示一個簡潔的消息。Snackbar出現在屏幕所有元素的上面,顯示一小會。
Snackbar顯示一會後會自動消失,用戶點擊其他地方的時候也會消失,尤其,當顯示一個新的界面的時候,Snackbar會滑出界面。
Snackbar 可以通過setAction(CharSequence, android.view.View.OnClickListener) 來設置一個點擊事件,同時也可以通過setCallback(Callback)來監聽snackbar的顯示和消失。

類介紹

Snackbar中Public屬性列表

這裡寫圖片描述
方法或接口 意義 Callback 抽象函數用來設置SnackBar顯示和消失的回調 make 創建SnackBar setAction 設置ActionView的響應事件 show 顯示SnackBar dismiss 收起SnackBar setActionTextColor 設置ActionView的字體顏色 setText 設置TextView的顯示內容 setDuration 設置SnackBar的顯示時間 getDuration 獲取SnackBar的顯示時間 getView 獲取SnackBar的View視圖 setCallback 設置顯示和消失的事件監聽 isShown 是否已經顯示 shownOrQueued 是否已經顯示或者在隊列中等待顯示

整理而言的話,感覺Snackbar就是Toast的一個升級版本,使用的方式和Toast也比較相似。


創建Snackbar之後一定要記得調用show()方法


具體使用

–代碼內容–

package mraz.com.snackdemo;

import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    RelativeLayout rootLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rootLayout = (RelativeLayout) findViewById(R.id.root_layout);

        Button shortButton = (Button) findViewById(R.id.short_button);
        Button longButton = (Button) findViewById(R.id.long_button);

        shortButton.setOnClickListener(this);
        longButton.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.short_button:
                final Snackbar shortSnackbar = Snackbar.make(rootLayout, " Short SnackBar", Snackbar.LENGTH_SHORT);
                shortSnackbar.setAction("Click", new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
                                Toast.makeText(rootLayout.getContext(), "Shoort Snackbar onClick", Toast.LENGTH_SHORT).show();
                            }
                        }
                );
                shortSnackbar.setActionTextColor(getResources().getColor(R.color.colorPrimaryDark));
                shortSnackbar.show();

                break;

            case R.id.long_button:
                Snackbar longSnackbar = Snackbar.make(rootLayout, " Long SnackBar", Snackbar.LENGTH_LONG);
                longSnackbar.setCallback(new SnackCallback());
                longSnackbar.show();
                break;
        }
    }

    class SnackCallback extends Snackbar.Callback {
        @Override
        public void onDismissed(Snackbar snackbar, int event) {
            super.onDismissed(snackbar, event);
            Toast.makeText(rootLayout.getContext(), "SnackBar onDismissed", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onShown(Snackbar snackbar) {
            super.onShown(snackbar);
            Toast.makeText(rootLayout.getContext(), "SnackBar onShown", Toast.LENGTH_SHORT).show();
        }
    }
}

實際效果

這裡寫圖片描述

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved