Как показать Snackbar при запуске Activity?

Я хочу показать андроид Snackbar (android.support.design.widget.Snackbar) когда действие начинается так же, как мы показываем Toast .

Но проблема в том, что мы должны указывать родительский макет при создании Snackbar следующим образом:

 Snackbar.make(parentlayout, "This is main activity", Snackbar.LENGTH_LONG) .setAction("CLOSE", new View.OnClickListener() { @Override public void onClick(View view) { } }) .setActionTextColor(getResources().getColor(android.R.color.holo_red_light )) .show(); 

Как предоставить родительский макет, когда мы показываем Snackbar в начале действия без каких-либо событий щелчка (если это событие щелчка, мы могли бы легко передать родительское представление)?

Solutions Collecting From Web of "Как показать Snackbar при запуске Activity?"

Просто укажите любой View внутри XML-операции. Например, вы можете указать id для root viewGroup и использовать:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); View parentLayout = findViewById(android.R.id.content); Snackbar.make(parentLayout, "This is main activity", Snackbar.LENGTH_LONG) .setAction("CLOSE", new View.OnClickListener() { @Override public void onClick(View view) { } }) .setActionTextColor(getResources().getColor(android.R.color.holo_red_light )) .show(); //Other stuff in OnCreate(); } 

Вызовите этот метод в onCreate

 Snackbar snack = Snackbar.make( (((Activity) context).findViewById(android.R.id.content)), message + "", Snackbar.LENGTH_SHORT); snack.setDuration(Snackbar.LENGTH_INDEFINITE);//change Duration as you need //snack.setAction(actionButton, new View.OnClickListener());//add your own listener View view = snack.getView(); TextView tv = (TextView) view .findViewById(android.support.design.R.id.snackbar_text); tv.setTextColor(Color.WHITE);//change textColor TextView tvAction = (TextView) view .findViewById(android.support.design.R.id.snackbar_action); tvAction.setTextSize(16); tvAction.setTextColor(Color.WHITE); snack.show(); 

Вы можете попробовать эту библиотеку. Это обертка для андроидской стандартной закуски. https://github.com/ChathuraHettiarachchi/CSnackBar

 Snackbar.with(this,null) .type(Type.SUCCESS) .message("Profile updated successfully!") .duration(Duration.SHORT) .show(); 

Это включает в себя несколько видов закусочной и даже интерналированную закусочную

У меня не было проблем с показом Snackbar. Вот простейший способ отображения Snackbar. Чтобы отобразить это как начало основной активности, просто поместите эти две строки в свой OnCreate()

  Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "Welcome To Main Activity", Snackbar.LENGTH_LONG); snackbar.show();