Affichez le Snackbar à partir de n'importe quelle position au lieu de le retirer du bas de l'écran
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>
Enveloppez la vue que vous souhaitez afficher Snackbar
avec CoordinatorLayout
build.gradle
dependencies {
implementation 'com.google.android.material:material:1.1.0'
}
ʻImplementation`` com.google.android.materialà
build.gradle pour utiliser
Snackbar`
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();
}
Créer une méthode pour afficher Snackbar
Définissez le premier argument de Snackbar.make
sur l'id de la vue à la position que vous souhaitez afficher (cette fois Button
)
Faire sortir Snackbar
de la vue
du bouton lorsque le bouton est enfoncé
Il y a beaucoup de descriptions supplémentaires, et je pense qu'il y a une meilleure façon, mais c'est un mémorandum, alors je me demande si tout va bien. ..