Как показать закусочную, когда начинается деятельность?
Я хочу показать 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. Вы можете дать идентификатор корневой 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 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 snackbar по умолчанию. https://github.com/ChathuraHettiarachchi/CSnackBar
Snackbar.with(this,null) .type(Type.SUCCESS) .message("Profile updated successfully!") .duration(Duration.SHORT) .show();
Это содержит несколько типов snackbar и даже customview интегрированной snackbar