package com.blankj.androidutilcode.activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.view.View; import com.blankj.androidutilcode.R; import com.blankj.androidutilcode.base.BaseActivity; import com.blankj.utilcode.util.SnackbarUtils; import com.blankj.utilcode.util.SpannableStringUtils; import com.blankj.utilcode.util.ToastUtils; /** * <pre> * author: Blankj * blog : http://blankj.com * time : 2016/10/17 * desc : Snackbar工具类Demo * </pre> */ public class SnackbarActivity extends BaseActivity { private View snackBarRootView; private final int TYPE_SHORT = 0x00; private final int TYPE_SHORT_WITH_ACTION = 0x01; private final int TYPE_LONG = 0x10; private final int TYPE_LONG_WITH_ACTION = 0x11; private final int TYPE_INDEFINITE = 0x20; private final int TYPE_INDEFINITE_WITH_ACTION = 0x21; private final int TYPE_CUSTOM = 0x40; private final int TYPE_CUSTOM_WITH_ACTION = 0x41; @Override public void initData(Bundle bundle) { } @Override public int bindLayout() { return R.layout.activity_snackbar; } @Override public void initView(Bundle savedInstanceState, View view) { snackBarRootView = findViewById(android.R.id.content); findViewById(R.id.btn_short_snackbar).setOnClickListener(this); findViewById(R.id.btn_short_snackbar_with_action).setOnClickListener(this); findViewById(R.id.btn_long_snackbar).setOnClickListener(this); findViewById(R.id.btn_long_snackbar_with_action).setOnClickListener(this); findViewById(R.id.btn_indefinite_snackbar).setOnClickListener(this); findViewById(R.id.btn_indefinite_snackbar_with_action).setOnClickListener(this); findViewById(R.id.btn_add_view).setOnClickListener(this); findViewById(R.id.btn_add_view_with_action).setOnClickListener(this); findViewById(R.id.btn_cancel_snackbar).setOnClickListener(this); } @Override public void doBusiness(Context context) { } @Override public void onWidgetClick(View view) { switch (view.getId()) { case R.id.btn_short_snackbar: showSnackbar(TYPE_SHORT); break; case R.id.btn_short_snackbar_with_action: showSnackbar(TYPE_SHORT_WITH_ACTION); break; case R.id.btn_long_snackbar: showSnackbar(TYPE_LONG); break; case R.id.btn_long_snackbar_with_action: showSnackbar(TYPE_LONG_WITH_ACTION); break; case R.id.btn_indefinite_snackbar: showSnackbar(TYPE_INDEFINITE); break; case R.id.btn_indefinite_snackbar_with_action: showSnackbar(TYPE_INDEFINITE_WITH_ACTION); break; case R.id.btn_add_view: showSnackbar(TYPE_CUSTOM); break; case R.id.btn_add_view_with_action: showSnackbar(TYPE_CUSTOM_WITH_ACTION); break; case R.id.btn_cancel_snackbar: SnackbarUtils.dismiss(); break; } } private void showSnackbar(int type) { SpannableStringUtils.Builder builder = new SpannableStringUtils.Builder() .append("").setResourceId(R.mipmap.ic_launcher) .append("").setMargin(24); switch (type) { case TYPE_SHORT: SnackbarUtils.showShort(snackBarRootView, builder.append(getString(R.string.snackbar_short)).create(), Color.BLUE, Color.LTGRAY); break; case TYPE_SHORT_WITH_ACTION: SnackbarUtils.showShort(snackBarRootView, builder.append(getString(R.string.snackbar_short)).create(), Color.BLUE, Color.LTGRAY, "Short", Color.DKGRAY, new View.OnClickListener() { @Override public void onClick(View v) { ToastUtils.showShort(getString(R.string.snackbar_click)); } }); break; case TYPE_LONG: SnackbarUtils.showShort(snackBarRootView, builder.append(getString(R.string.snackbar_long)).create(), Color.BLUE, Color.LTGRAY); break; case TYPE_LONG_WITH_ACTION: SnackbarUtils.showShort(snackBarRootView, builder.append(getString(R.string.snackbar_long)).create(), Color.BLUE, Color.LTGRAY, "Short", Color.DKGRAY, new View.OnClickListener() { @Override public void onClick(View v) { ToastUtils.showShort(getString(R.string.snackbar_click)); } }); break; case TYPE_INDEFINITE: SnackbarUtils.showShort(snackBarRootView, builder.append(getString(R.string.snackbar_indefinite)).create(), Color.BLUE, Color.LTGRAY); break; case TYPE_INDEFINITE_WITH_ACTION: SnackbarUtils.showShort(snackBarRootView, builder.append(getString(R.string.snackbar_indefinite)).create(), Color.BLUE, Color.LTGRAY, "Short", Color.DKGRAY, new View.OnClickListener() { @Override public void onClick(View v) { ToastUtils.showShort(getString(R.string.snackbar_click)); } }); break; case TYPE_CUSTOM: SnackbarUtils.showShort(snackBarRootView, "", Color.BLUE, Color.LTGRAY); SnackbarUtils.addView(R.layout.snackbar_add, 0); break; case TYPE_CUSTOM_WITH_ACTION: SnackbarUtils.showShort(snackBarRootView, "", Color.BLUE, Color.LTGRAY, "Short", Color.DKGRAY, new View.OnClickListener() { @Override public void onClick(View v) { ToastUtils.showShort(getString(R.string.snackbar_click)); } }); SnackbarUtils.addView(R.layout.snackbar_add, 0); break; } } }