Wir verwenden Snackbar in unserer Anwendung. Sie kann jedoch standardmäßig ausgeblendet werden, wenn Sie nach rechts abgewischt werden. Gibt es eine Einstellung, die es entnehmbar macht, wenn man eine horizontale Richtung wischt (dh nach links oder rechts wischen) - um es auch Linkshändern zu erleichtern.Android - Snackbar - lassen Sie sich jede horizontale Richtung ablehnen
0
A
Antwort
0
Der Sinn dieses Verhaltens ist, dass es sich auf allen Android-Telefonen genauso verhält. Das bedeutet auch, dass Benutzer, die mit der Android-Erfahrung vertraut sind, oder sogar diejenigen, die die Snackbar gesehen haben und sie zuvor entlassen haben, wissen, dass das Wischen nach rechts sie abtun wird.
Es gibt eine Anfrage, dieses Verhalten zu ändern, und es könnte mit genug Sternen genehmigt werden (es ist derzeit auf mittlere Priorität): https://code.google.com/p/android/issues/detail?id=80102
0
Snackbar snackbar = Snackbar.make(fab, "snackbar", Snackbar.LENGTH_SHORT);
snackbar.show();
final Snackbar.SnackbarLayout snackbarLayout = (Snackbar.SnackbarLayout) snackbar.getView();
snackbar.setDuration(Snackbar.LENGTH_INDEFINITE);
snackbar.show();
snackbarLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
ViewGroup.LayoutParams lp = snackbarLayout.getLayoutParams();
if (lp instanceof CoordinatorLayout.LayoutParams) {
((CoordinatorLayout.LayoutParams) lp).setBehavior(new SwipeDismissBehavior<Snackbar.SnackbarLayout>(){
@Override
public boolean canSwipeDismissView(View view) {
return false;
}
});
snackbarLayout.setLayoutParams(lp);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
snackbarLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
snackbarLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
});
Dieser Code für mich gearbeitet.
Dieser Codeabschnitt funktioniert nur, wenn Sie "canSwipeDismissView" auf "true true" bearbeiten. Außerdem bricht es Rückrufe bei entlassenen Ereignissen. –