Intereting Posts
Android ConstraintLayout генерирует абсолютные значения Разница между getDefaultSharedPreferences и getSharedPreferences Могу ли я использовать AlarmManager с LocalBroadcastManager на Android? Является ли локальное хранилище для приложения Phonegap на устройстве Android отдельно от встроенного браузера? Java.lang.RuntimeException: Неизвестное имя анимации: objectAnimator Как удалить границу / тень с кнопок леденца Услуги по проверке местоположения Android доступны с поддержкой игровых сервисов api Случайные атаки приложений на Android Wear 5.0.X Нажатие на Уведомление не начинается с намеченной деятельности? Отображение пользовательского вида в swiped RecyclerView item Android – Что происходит, когда устройство разблокировано? Обнаружение исходящего звонка на Android Можно ли использовать Android SDK методы с аннотацией @hide? Android AlarmManager: есть ли способ отменить ВСЕ установленные тревоги? «Вы должны использовать тему Theme.Appcompat …» при тестировании ActionBarActivity, но я

Как показать 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();