如何将动态操作项添加到android BottomSheet?

blu*_*are 1 android material-design bottom-sheet

我正在开发一个应用程序,可以实现BottomSheet类似谷歌的材料设计.我发现的只是一个可以添加到Sheet的静态动作,就像这样使用这个库BottomSheet:

new BottomSheet.Builder(this).title("title").sheet(R.menu.list).listener(new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        switch (which) {
                            case R.id.help:
                                q.toast("Help me!");
                                break;
                        }
                    }
                }).show();
Run Code Online (Sandbox Code Playgroud)

在这里,R.menu.list将静态动作加载到BottomSheet.我想要的是向它添加动态操作项,例如,一个ArrayList动作.任何的想法?

顺便说一下,我试着在我的问题中添加这个标签"bottom-sheet",但我没有特权.

Ale*_*lov 6

你可以用.sheet()方法做到这一点:

BottomSheet bottomSheet = new BottomSheet.Builder(getActivity())
                    .title(R.string.sharing_warning_note)
                    .sheet(R.id.menu_facebook, facebookDrawable,
                            getString(R.string.publishing_settings_facebook))
                    .sheet(R.id.menu_vkontakte, vkontakteDrawable,
                            getString(R.string.publishing_settings_vkontakte))
                    .divider()
                    .listener(new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            switch (which) {
                                case R.id.menu_facebook:
                                    share(SocialNetworkType.FACEBOOK);
                                    break;
                                case R.id.menu_vkontakte:
                                    share(SocialNetworkType.VK);
                                    break;
                                default:
                            }
                        }
                    })
                    .build();
            bottomSheet.show();
Run Code Online (Sandbox Code Playgroud)

-UPDATE-

使用数组列表,您可以这样:

BottomSheet bottomSheet = new BottomSheet.Builder(getActivity());
for (int i = 0; i<list.size(); i++) {
     String s = list.get(i);
     bottomSheet.sheet(i, null, s);
}
bottomSheet.build();
bottomSheet.show();
Run Code Online (Sandbox Code Playgroud)