android – 如何自定义snackBar的布局?

有什么方法来改变一个snackBar的布局到自定义视图?

现在它变黑了,我们可以改变背景颜色。
但我不知道正确的方式膨胀一个新的布局,并使其作为snackBars背景?

谢谢…

最佳答案
Snackbar不允许您设置自定义布局。然而,因为Primoz990建议你可以得到Snackbar的视图。 getView函数返回Snackbar.SnackbarLayout,它是一个水平LinearLayout对象,其子对象是一个TextView和一个Button。要将您自己的View添加到Snackbar,只需隐藏TextView,并将您的View添加到Snackbar.SnackbarLayout。

// Create the Snackbar
Snackbar snackbar = Snackbar.make(containerLayout, "", Snackbar.LENGTH_LONG);
// Get the Snackbar's layout view
Snackbar.SnackbarLayout layout = (Snackbar.SnackbarLayout) snackbar.getView();
// Hide the text
TextView textView = (TextView) layout.findViewById(android.support.design.R.id.snackbar_text);
textView.setVisibility(View.INVISIBLE);

// Inflate our custom view
View snackView = mInflater.inflate(R.layout.my_snackbar, null);
// Configure the view
ImageView imageView = (ImageView) snackView.findViewById(R.id.image);
imageView.setImageBitmap(image);
TextView textViewTop = (TextView) snackView.findViewById(R.id.text);
textViewTop.setText(text);
textViewTop.setTextColor(Color.WHITE);

// Add the view to the Snackbar's layout
layout.addView(snackView, 0);
// Show the Snackbar
snackbar.show();

转载注明原文:android – 如何自定义snackBar的布局? - 代码日志