前言
我瀏覽material.io網站時,從所謂的“Material Design 2”中找到一些新的元件,並發現Snackbar已經改變了,它不再佔用整個螢幕長度,並且周圍會有一個間距。
但我並沒有從Support Library的alpha版本中找到它,所以我決定自己實現一下。
1、建立Drawable檔案
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#323232" />
<corners android:radius="4dp" />
</shape>
複製程式碼
2、建立工具類
public class SnackbarHelper {
public static void config(Context context, Snackbar snack) {
addMargins(snack);
setRoundBordersBg(context, snack);
ViewCompat.setElevation(snack.getView(), 6f);
}
private static void addMargins(Snackbar snack) {
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) snack.getView().getLayoutParams();
params.setMargins(12, 12, 12, 12);
snack.getView().setLayoutParams(params);
}
private static void setRoundBordersBg(Context context, Snackbar snackbar) {
snackbar.getView().setBackground(context.getResources().getDrawable(R.drawable.bg_snackbar));
}
}
複製程式碼
3、使用
public void showSnackbar(View view) {
Snackbar snackbar = Snackbar.make(view, "這個一個snackbar", Snackbar.LENGTH_SHORT);
snackbar.setAction("ok", new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
snackbar.setActionTextColor(Color.RED);
SnackbarHelper.config(MainActivity.this, snackbar);
snackbar.show();
}
複製程式碼