0

I am working in a project with dynamic modules. Where we a navigation bar that is in the Dashboard module. But I working in another module, that the view is a fragment tied to the Dashboard Activity. And I want to show an snackbar, but my problem is that the snackbar instead of showing at the bottom of the fragment view is showing in the navigation bar (I attached photos). I have tried several things but i don't know how to solved.

This is how i creating the snackbar:

            Snackbar.make(it, "test", Snackbar.LENGTH_INDEFINITE).show()

This is my layout of the fragment:

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

 <androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        android:textAlignment="center"
        android:text="Welcome"/>

 </androidx.constraintlayout.widget.ConstraintLayout>
 </ScrollView>

The image of the Snackbar

The image of the app withour snackbar

  • Create a blank `CoordinatorLayout` above the `BottomNavigationBar`, put its `height` as `100dp` at least, and pass this layout as `parentLayout` in `SnackBar`. Will definitely work. Sample answer [here](https://stackoverflow.com/a/36768267/8244632). – Lalit Fauzdar Nov 23 '20 at 15:29

1 Answers1

1

You can set margin to your Snackbar like this:

Snackbar snack = Snackbar.make(coordinatorLayout, "test", Snackbar.LENGTH_LONG);
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) 
                                         snack.getView().getLayoutParams();
params.setMargins(0, 0, 0, bottomBarHeight);
snack.getView().setLayoutParams(params);
snack.show();