Как показать Snackbar при запуске активности?
Я хочу показать android 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
в начале действия без каких-либо событий щелчка (если это было событие щелчка, мы могли бы легко передать родительское представление)?
5 ответов
просто укажите на любой View
внутри Activity's
XML-файле. Например, вы можете дать id корневой 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();
}
у меня были проблемы с отображением Snackbar до сих пор.
Вот самый простой способ отображения Snackbar. Чтобы отобразить его в начале основной деятельности, просто поместите эти две строки в свой OnCreate()
Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "Welcome To Main Activity", Snackbar.LENGTH_LONG);
snackbar.show();
П. С. Просто убедитесь, что вы импортировали дизайн поддержка Android.(Как упоминалось в вопросе).
вызовите этот метод в 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();
вы можете попробовать эту библиотеку. Это обертка для Android по умолчанию закусочной. https://github.com/ChathuraHettiarachchi/CSnackBar
Snackbar.with(this,null)
.type(Type.SUCCESS)
.message("Profile updated successfully!")
.duration(Duration.SHORT)
.show();
Это содержит несколько типов snackbar и даже customview интегрированной snackbar
попробуй такое
Snackbar.make(findViewById(android.R.id.content), "Got the Result", Snackbar.LENGTH_LONG)
.setAction("Submit", mOnClickListener)
.setActionTextColor(Color.RED)
.show();