如何将动态操作项添加到 android BottomSheet?
How to add dynamic action items to android BottomSheet?
我正在开发一个应用程序,可以实现 BottomSheet
类似 Google material 设计的应用程序。我发现的只是一个可以添加到 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();
此处,R.menu.list
将静态动作加载到 BottomSheet
中。
我想要的是向其中添加动态操作项,例如 ArrayList
个操作。有什么想法吗?
顺便说一句,我试图将这个标签 "bottom-sheet" 添加到我的问题中,但我没有这样做的权限。
您可以使用 .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();
我正在开发一个应用程序,可以实现 BottomSheet
类似 Google material 设计的应用程序。我发现的只是一个可以添加到 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();
此处,R.menu.list
将静态动作加载到 BottomSheet
中。
我想要的是向其中添加动态操作项,例如 ArrayList
个操作。有什么想法吗?
顺便说一句,我试图将这个标签 "bottom-sheet" 添加到我的问题中,但我没有这样做的权限。
您可以使用 .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();