@Override public void onClick(View v) { if(mSnackBar.getState() == SnackBar.STATE_SHOWN) mSnackBar.dismiss(); else{ switch (v.getId()) { case R.id.snackbar_bt_mobile_single: mSnackBar.applyStyle(R.style.SnackBarSingleLine); mSnackBar.show(); break; case R.id.snackbar_bt_mobile_multi: mSnackBar.applyStyle(R.style.SnackBarMultiLine); mSnackBar.show(); break; case R.id.snackbar_bt_tablet_single: mSnackBar.applyStyle(R.style.Material_Widget_SnackBar_Tablet); mSnackBar.text("This is single-line snackbar.") .actionText("CLOSE") .duration(0) .show(); break; case R.id.snackbar_bt_tablet_multi: mSnackBar.applyStyle(R.style.Material_Widget_SnackBar_Tablet_MultiLine); mSnackBar.text("This is multi-line snackbar.\nIt will auto-close after 5s.") .actionText(null) .duration(5000) .show(); break;
public static SnackBar make(Context context){ return new SnackBar(context); }
/** * Set the text that the ActionButton is to display. * @param id If 0, then the ActionButton will be hidden. * @return This SnackBar for chaining methods. */ public SnackBar actionText(int id){ if(id == 0) return actionText(null); return actionText(getContext().getResources().getString(id)); }
/** * Show this SnackBar. It will auto attach to the parent view. * @param parent Must be {@linke android.widget.FrameLayout} or {@link android.widget.RelativeLayout} */ public void show(ViewGroup parent){ if(mState == STATE_SHOWING || mState == STATE_DISMISSING) return; if(getParent() != parent) { if(getParent() != null) ((ViewGroup) getParent()).removeView(this); parent.addView(this); } show(); }
/** * Set the text that this SnackBar is to display. * @param id The resourceId of text is displayed. * @return This SnackBar for chaining methods. */ public SnackBar text(int id){ return text(getContext().getResources().getString(id)); }
int attr = a.getIndex(i); if(attr == R.styleable.SnackBar_sb_backgroundColor) backgroundColor(a.getColor(attr, 0)); else if(attr == R.styleable.SnackBar_sb_backgroundCornerRadius) backgroundRadius(a.getDimensionPixelSize(attr, 0)); else if(attr == R.styleable.SnackBar_sb_horizontalPadding) horizontalPadding = a.getDimensionPixelSize(attr, 0); else if(attr == R.styleable.SnackBar_sb_width){ if(ThemeUtil.getType(a, attr) == TypedValue.TYPE_INT_DEC) width(a.getInteger(attr, 0)); else width(a.getDimensionPixelSize(attr, 0)); height(a.getInteger(attr, 0)); else height(a.getDimensionPixelSize(attr, 0)); minWidth(a.getDimensionPixelSize(attr, 0)); else if(attr == R.styleable.SnackBar_sb_maxWidth) maxWidth(a.getDimensionPixelSize(attr, 0)); else if(attr == R.styleable.SnackBar_sb_minHeight) minHeight(a.getDimensionPixelSize(attr, 0)); else if(attr == R.styleable.SnackBar_sb_maxHeight) maxHeight(a.getDimensionPixelSize(attr, 0)); else if(attr == R.styleable.SnackBar_sb_marginStart) marginStart(a.getDimensionPixelSize(attr, 0)); else if(attr == R.styleable.SnackBar_sb_marginBottom) marginBottom(a.getDimensionPixelSize(attr, 0));
public void showSnackBar(String message){ SnackBar.make(this).actionText(message).duration(Snackbar.LENGTH_SHORT).show(); }
/** * Show this SnackBar. It will auto attach to the activity's root view. * @param activity */ public void show(Activity activity){ show((ViewGroup)activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT)); }
@Override public void run() { dismiss(); } };
@Override public void onClick(View v) { if (mActionClickListener != null) mActionClickListener.onActionClick(SnackBar.this, mActionId); dismiss(); }
@Override public void onPageSelected(int position) { mDrawerAdapter.setSelected(mItems[position]); mSnackBar.dismiss(); }