Wie zeige ich die Snackbar, wenn die Aktivität beginnt?
Lesezeit: 4 Minuten
Sudhish Mohan
Ich möchte Android zeigen Snackbar(android.support.design.widget.Snackbar) wenn die Aktivität beginnt, wie wir a zeigen Toast.
Das Problem ist jedoch, dass wir beim Erstellen das übergeordnete Layout angeben müssen Snackbar so was:
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();
Wie man Elternlayout gibt, wenn wir zeigen Snackbar zu Beginn der Aktivität ohne Klickereignisse (Wenn es ein Klickereignis gewesen wäre, hätten wir die übergeordnete Ansicht problemlos passieren können)?
Zeigen Sie einfach auf irgendeinen View innerhalb der Activity's XML. Sie können beispielsweise der Root-Ansichtsgruppe eine ID zuweisen und Folgendes verwenden:
@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();
}
Für die Root-Ansicht können Sie auch generell verwenden findViewById(android.R.id.content) wie hier angegeben stackoverflow.com/a/4488149/1518546
– John Cummings
30. Oktober 2015 um 15:03 Uhr
ParentLayout anzeigen = findViewById(R.id.root_view); löst eine Nullzeiger-Ausnahme in Version 5.0 oder niedriger aus. Wie kann man dieses Problem lösen?
– Anand Savjani
31. Dezember 2015 um 4:43 Uhr
@AnandSavjani Der Code funktioniert perfekt mit mir für 5.0 und unter 5.0, es muss einen Fehler in Ihrem Layout geben (root_view). Wenn Sie ein Fragment verwenden, sollten Sie rootview.findViewById(R.id.your_parent_view) schreiben; Geben Sie auch nicht dieselbe ID wie den Layoutnamen an.
– Sudhish Mohan
11. Januar 2016 um 10:07 Uhr
Ich glaube, es löst NullpointerException aus, wenn Sie CoordinatorLayout nicht als Root verwenden.
– Ishaan
7. September 2016 um 15:48 Uhr
Vergessen Sie nicht, die Support-Designbibliothek einzuschließen: ‘com.android.support:design:27.0.0’
– Nicola
26. November 2017 um 11:11 Uhr
devDeejay
Ich hatte bisher Probleme damit, Snackbar anzuzeigen. Hier ist die einfachste Art, eine Snackbar anzuzeigen. Um es als Beginn Ihrer Hauptaktivität anzuzeigen, fügen Sie einfach diese beiden Zeilen in Ihre ein OnCreate()
Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "Welcome To Main Activity", Snackbar.LENGTH_LONG);
snackbar.show();
PS Stellen Sie einfach sicher, dass Sie den Android Design Support importiert haben (wie in der Frage erwähnt).
Snackbar.make(view, "<text>", Snackbar.LENGTH_SHORT).show();
// or
Snackbar.make(view, "<text>", Snackbar.LENGTH_LONG).show();
und um Text mit einer Schaltfläche anzuzeigen:
Snackbar.make(view, "<text>", Snackbar.LENGTH_SHORT).setAction("<button_text>", new View.OnClickListener() {
@Override
public void onClick(View view) {
// operation to perform when the button is clicked
}
}).show();
13342400cookie-checkWie zeige ich die Snackbar, wenn die Aktivität beginnt?yes
Artikel dazu geschrieben onetouchcode.com/2016/12/24/use-snackbar-android-apps Dies wird hilfreich sein, um mehr Details über die Snackbar zu erfahren
– Shailendra
25. Dezember 2016 um 13:47 Uhr