Ich versuche, eine benutzerdefinierte Snackbar, wie in diesem Beispiel zu zeigen:Benutzerdefinierte Snackbar funktioniert nicht richtig
how to customize snackBar's layout?
Dies ist mein benutzerdefinierter Code eine Snackbar zu erstellen:
protected void showSnackBar(View view) {
Snackbar snackbar = Snackbar.make(view, "", Snackbar.LENGTH_INDEFINITE);
Snackbar.SnackbarLayout layout = (Snackbar.SnackbarLayout) snackbar.getView();
TextView textView = (TextView) layout.findViewById(android.support.design.R.id.snackbar_text);
textView.setVisibility(View.INVISIBLE);
LayoutInflater inflater = LayoutInflater.from(this);
View snackView = inflater.inflate(R.layout.custom_snackbar, null);
layout.addView(snackView, 0);
ViewGroup group = (ViewGroup) snackbar.getView();
group.setBackgroundColor(ContextCompat.getColor(this, R.color.green_wasabi));
snackbar.show();
}
Mein Ziel ist es, eine Methode in meiner Basisaktivität zu haben, um von jeder anderen Aktivität aus aufzurufen.
Aber mein Problem ist, wenn ich die Snackbar zeigen, dass es unter der Tastatur angezeigt wird:
Darüber hinaus nicht alle Ansichten des Layouts nicht zeigen:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/relativelayout_sync_schedule_runs"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:padding="10dp"
android:background="@color/green_wasabi"
android:layout_alignParentBottom="true"
android:layout_gravity="center_horizontal|bottom">
<ProgressBar
android:id="@+id/progressbar_infinite"
android:layout_width="30dp"
android:layout_height="30dp"
style="@android:style/Widget.Material.ProgressBar.Small"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:layout_toLeftOf="@+id/textview_sync_runs"
android:layout_toStartOf="@+id/textview_sync_runs" />
<com.runator.ui.widget.text.CustomTextView
android:id="@+id/textview_sync_runs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/import_runs"
android:textColor="@color/black_midnight"
style="@style/texts.medium_medium_big"
app:font_type="bold"
android:gravity="center"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"/>
Wenn jemand irgendwelche Vorschläge hat, werde ich mich freuen, es zu hören.
Vielen Dank im Voraus.
Können Sie Ihre layout.xml-Datei teilen, die zu BaseActivity gehört? –
Meine BaseActivity hat kein Layout – dpulgarin
Es sieht so aus, als ob Sie eine durchsichtige Navigationsleiste verwenden (entweder in Ihren Stilen/Themen oder programmatisch). Deshalb streckt sich Ihr Layout auf die volle Höhe des Displays und Ihre Snackbar wird unten angehängt. Sie können versuchen, android: fitsSystemWindows = "true" zu Ihrem übergeordneten Element in Ihrem Layout hinzuzufügen, aber dann wird der Inhalt nicht hinter der Navigationsleiste angezeigt. Wenn Sie immer noch den Inhalt haben möchten, um sich dahinter zu dehnen, aber den Snacker oben zu haben, müssen Sie seine Position programmatisch ändern, wenn es angezeigt wird. – peshkira