Not working with fragment
Closed this issue · 7 comments
@invissvenska please look in to it. this error is occur.
java.lang.IllegalStateException: Activity or Fragment need to implements ModalBottomSheetDialog.Listener
at nl.invissvenska.modalbottomsheetdialog.ModalBottomSheetDialog.bindHost(ModalBottomSheetDialog.java:126)
at nl.invissvenska.modalbottomsheetdialog.ModalBottomSheetDialog.onViewCreated(ModalBottomSheetDialog.java:85)
at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:2974)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:543)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2177)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2088)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1990)
at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:221)
at android.app.ActivityThread.main(ActivityThread.java:7520)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Thanks
Which method do you use to get the FragmentManager in your Fragment?
If your Fragment is implementing the ModalBottomSheetDialog.Listener
then try to use getChildFragmentManager()
When the Listener is implemented on your Activity you can use the getParentFragmentManager()
or getActivity().getSupportFragmentManager()
.
Let me know if any of the above works out for you.
i use this method dialog.show(getParentFragmentManager(), "WithHeader");
@invissvenska with use of getChildFragmentManager() method issue solved.
But one more thing, after selection of item bottom sheet not closed how to solve this.
Thanks
Ok great!
When you follow this example:
ModalBottomSheetDialog dialog = new ModalBottomSheetDialog.Builder()
.setHeader("Title of modal")
.add(R.menu.options)
.build();
// some other code in between
dialog.show(FragmentManager fragmentManager, "WithHeader");
You can close the dialog in the OnItemSelected(...)
method with dialog.dismiss()
Ok great!
When you follow this example:
ModalBottomSheetDialog dialog = new ModalBottomSheetDialog.Builder() .setHeader("Title of modal") .add(R.menu.options) .build(); // some other code in between dialog.show(FragmentManager fragmentManager, "WithHeader");You can close the dialog in the
OnItemSelected(...)
method withdialog.dismiss()
very thanks for support for this beautiful lib.
Please update the md.file regarding fragment issue, coz there usage documentation is little bit different.
Thanks
Readme file is updated, thanks for your feedback and support!