Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BottomSheetDialog usage in Fragment #16

Open
suleymanccelik opened this issue Jun 9, 2017 · 3 comments
Open

BottomSheetDialog usage in Fragment #16

suleymanccelik opened this issue Jun 9, 2017 · 3 comments

Comments

@suleymanccelik
Copy link

suleymanccelik commented Jun 9, 2017

Hi, Thanks for your library.

I am trying to show BottomSheet in a fragment but a problem occurs on onBottomSheetItemClick listener. Problem steps are;

1- User clicks edit button and BottomSheet opens
2- User clicks an item and BottomSheet dismisses
3- User clicks edit button again and BottomSheet opens
4- User clicks an item but BottomSheet doesn't close and onBottomSheetItemClick is not called.

I changed your sample code using a fragment and same problem occurs. BottomSheet dialog dismisses when user clicks outside of the dialog. In my fragment, there is no coordinatorlayout.

mShowingSimpleDialog = true;
        mBottomSheetDialog = new BottomSheetBuilder(getActivity())
                .setMode(BottomSheetBuilder.MODE_LIST)
                .addTitleItem("Custom title")
                .addItem(0, "Preview", R.drawable.ic_close_24dp)
                .addItem(1, "Share", R.drawable.ic_close_24dp)
                .addDividerItem()
                .addItem(2, "Get link", R.drawable.ic_close_24dp)
                .addItem(3, "Make a copy", R.drawable.ic_close_24dp)
                .expandOnStart(true)
                .setItemClickListener(new BottomSheetItemClickListener() {
                    @Override
                    public void onBottomSheetItemClick(MenuItem item) {
                        Log.d("Item click", item.getTitle() + "");
                        mShowingSimpleDialog = false;
                    }
                })
                .createDialog();
        mBottomSheetDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dialog) {
                mShowingSimpleDialog = false;
            }
        });
@rubensousa
Copy link
Owner

Did you find a solution for this?

@Fuhrmann
Copy link

Fuhrmann commented May 1, 2018

Same problem. I guess this is the culprit:

@Override
public void onBottomSheetItemClick(MenuItem item) {
    if (!mClicked) {

        if (mBehavior != null) {
            mBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
        }

        if (mClickListener != null) {
            mClickListener.onBottomSheetItemClick(item);
        }

        mClicked = true;
    }
}

The mClicked once true, stays true. It never changes to false.

@Angelk90
Copy link

@rubensousa , @suleymanccelik :

I'm having a similar problem.

When an item is clicked, nothing happens.

It looks like setItemClickListener, it's not working.


        mBottomSheetDialog = new BottomSheetBuilder(this)
                .setMode(BottomSheetBuilder.MODE_LIST)
                .setItemTextColor(Color.parseColor("#000000"))
                .setBackgroundColor(Color.parseColor("#ffffff"))
                .addItem(0, "Add sub", R.drawable.ic_facebook_box)
                .addItem(1, "Change time", R.drawable.ic_facebook_box)
                .addItem(2, "Show/Hide title", R.drawable.ic_facebook_box)
                .expandOnStart(true)
                .setItemClickListener(new BottomSheetItemClickListener() {
                    @Override
                    public void onBottomSheetItemClick(MenuItem item) {
                        Log.v("ok", " click2-" + item.getTitle());
                    }
                }).createDialog();

        mBottomSheetDialog.show();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants