2

我正在开发一个应用程序,可以实现BottomSheet类似谷歌材料设计的应用程序。我发现的只是一个可以添加到工作表的静态操作,就像使用这个库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();

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

顺便说一句,我尝试将此标签“底页”添加到我的问题中,但我没有权限。

4

1 回答 1

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();

-更新-

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

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();
于 2015-07-06T08:45:02.880 回答