Zeigen Sie die Snackbar von einer beliebigen Position aus an, anstatt sie am unteren Bildschirmrand herauszuziehen
fragment_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginTop="200dp"
android:gravity="center" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</LinearLayout>
Schließen Sie die Ansicht, die "Snackbar" anzeigen soll, mit "CoordinatorLayout" ein
build.gradle
dependencies {
implementation 'com.google.android.material:material:1.1.0'
}
Implementierung`` com.google.android.material
zu build.gradle
um Snackbar
zu verwenden
MainFragment.java
import com.google.android.material.snackbar.Snackbar;
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
Button button = view.findViewById(R.id.button);
button.setText("button");
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showSnackbar("test");
}
});
super.onViewCreated(view, savedInstanceState);
}
private void showSnackbar(String message) {
View view = getView();
if (view == null) return;
Snackbar snackbar = Snackbar.make(view.findViewById(R.id.button), message, Snackbar.LENGTH_SHORT);
snackbar.show();
}
Erstellen Sie eine Methode zum Anzeigen von "Snackbar" Setzen Sie das erste Argument von "Snackbar.make" auf die ID der Ansicht an der Position, die Sie anzeigen möchten (diesmal "Button"). Lassen Sie "Snackbar" unter der "Ansicht" der Schaltfläche hervorkommen, wenn die Taste gedrückt wird
Es gibt viele zusätzliche Beschreibungen, und ich denke, es gibt einen besseren Weg, aber es ist ein Memorandum, also frage ich mich, ob das in Ordnung ist. ..