SnackBar

简介

xxx

方法

setText(CharSequence message)
文本(可CharSequence和string resID)
setActionTextColor(ColorStateList colors)
按钮文本色(可色值和color resID)
setCallback(Callback callback)
Snackbar添显示和隐藏监听(对应Callback中onShown和onDismissed)

使用

原生

final Snackbar snackbar = Snackbar.make(findViewById(R.id.rlDataEntryModules), "进入新增模式", Snackbar.LENGTH_LONG);
snackbar.setAction(R.string.know, new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        snackbar.dismiss();
    }
}).show();

封装

SnackBar

package widget.snackbar;

import android.support.design.widget.Snackbar;
import android.view.View;
import android.widget.TextView;

import com.xalikai.bnmdteacherend.R;

/**
 * Created on 2019/1/7.
 *
 * @author 郑少鹏
 * @desc SnackBar
 */
public class SnackBar {
    /**
     * SnackBar
     *
     * @param view        视图
     * @param message     内容
     * @param duration    时长
     * @param sbAlpha     背景透明度
     * @param sbColor     背景色
     * @param textColor   文本色
     * @param textGravity 文本位
     * @return snackBar
     */
    public static Snackbar baseSnackBar(View view, String message, int duration, Float sbAlpha, int sbColor, int textColor, int textGravity) {
        Snackbar baseSnackBar = Snackbar.make(view, message, duration);
        View snackBarView = baseSnackBar.getView();
        TextView textView = snackBarView.findViewById(R.id.snackbar_text);
        // SnackBar
        snackBarView.setAlpha(sbAlpha);
        snackBarView.setBackgroundColor(sbColor);
        // TextView
        textView.setTextColor(textColor);
        // View.setTextAlignment需SDK>=17
        textView.setTextAlignment(View.TEXT_ALIGNMENT_GRAVITY);
        textView.setGravity(textGravity);
        return baseSnackBar;
    }

    /**
     * SnackBar
     *
     * @param view          视图
     * @param hint          提示
     * @param duration      时长
     * @param action        动作否
     * @param actionHintRes 动作提示
     * @return SnackBar
     */
    public static Snackbar snackbar(View view, CharSequence hint, int duration, boolean action, int actionHintRes) {
        final Snackbar snackbar = Snackbar.make(view, hint, duration);
        if (action) {
            snackbar.setAction(actionHintRes, new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    snackbar.dismiss();
                }
            });
        }
        return snackbar;
    }
}

主代码

SnackBar.baseSnackBar(findViewById(R.id.rlDataEntryModules), "测试", Snackbar.LENGTH_SHORT, 1.0F,
    ContextCompat.getColor(this, R.color.colorPrimary),
    ContextCompat.getColor(this, R.color.background), Gravity.CENTER).show();

你可能感兴趣的:(android)