首页 > 解决方案 > 单击其上的项目时,BottomSheet 不折叠

问题描述

我使用片段和扩展 BottomSHeetDialogFragment 类创建了一个底页,现在的问题是当我单击底页上的任何项目时它不会折叠底页我该怎么做?

这是我的 BottomSheetFragment 类

public class BottomSheetFragment extends BottomSheetDialogFragment {

    private NavigationView navigationView;
    private BottomSheetBehavior bottomSheetBehavior;


    @Override
    public View onCreateView(LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) {


        Inflater inflater1 = new Inflater();
        final View view = inflater.inflate(R.layout.fragment_bottom_sheet, container, false);


        navigationView = view.findViewById(R.id.navigation_view_id);
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
                switch (menuItem.getItemId()) {
                    case R.id.all_list_item_id:

                        // Do something and collapse sheet

                        return true;
                    case R.id.add_new_list_item_id:

                        // Do something and collapse sheet

                        return true;
                    case R.id.bottom_sheet_item3_id:

                        // Do something and collapse sheet

                        return true;
                    default:
                        return false;
                }
            }
        });
        return view;
    }

}

标签: androidonclickfragmentbottom-sheet

解决方案


解决方案很简单,只需从您的 onclick 方法调用方法 dismiss()。

参考:https://developer.android.com/reference/android/support/v4/app/DialogFragment.html#dismiss()

代码应该像下面给出的那样

public class BottomSheetFragment extends BottomSheetDialogFragment {

    private NavigationView navigationView;
    private BottomSheetBehavior bottomSheetBehavior;


    @Override
    public View onCreateView(LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) {


        Inflater inflater1 = new Inflater();
        final View view = inflater.inflate(R.layout.fragment_bottom_sheet, container, false);


        navigationView = view.findViewById(R.id.navigation_view_id);
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
                switch (menuItem.getItemId()) {
                    case R.id.all_list_item_id:
                        dismiss();
                        return true;
                    case R.id.add_new_list_item_id:
                        dismiss();
                        return true;
                    case R.id.bottom_sheet_item3_id:
                        dismiss();
                        return true;
                    default:
                        return false;
                }
            }
        });
        return view;
    }

}

推荐阅读