当我在扩展BottomSheetDialogFragment的片段中添加工具栏时。它的工具栏包含活动菜单以及片段,并且仅向上拖动到活动工具栏的高度,而不是整个窗口。 但是如果没有工具栏,它就可以正常工作。 所以,告诉我添加工具栏的正确方法。
public class BottomSheetDialog extends BottomSheetDialogFragment {
@SuppressLint("RestrictedApi")
@Override
public void setupDialog(Dialog dialog, int style) {
super.setupDialog(dialog, style);
View v = View.inflate(getActivity(), R.layout.bottomsheet, null);
dialog.setContentView(v);
}
}
添加工具栏后
public class BottomSheetDialog extends BottomSheetDialogFragment {
@SuppressLint("RestrictedApi")
@Override
public void setupDialog(Dialog dialog, int style) {
super.setupDialog(dialog, style);
View v = View.inflate(getActivity(), R.layout.bottomsheet, null);
dialog.setContentView(v);
Toolbar toolbar = v.findViewById(R.id.toolbar);
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
}
}
舞台图像
答案 0 :(得分:0)
我解决了 实际代码在这里
public class BottomSheetDialog extends BottomSheetDialogFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setHasOptionsMenu(true);
}
@SuppressLint("RestrictedApi")
@Override
public void setupDialog(Dialog dialog, int style) {
super.setupDialog(dialog, style);
View v = View.inflate(getActivity(), R.layout.bottomsheet, null);
dialog.setContentView(v);
v.setFitsSystemWindows(true);
Toolbar toolbar = (Toolbar) v.findViewById(R.id.bottomsheet_toolbar);
toolbar.inflateMenu(R.menu.menu_details);
toolbar.setTitle("title");
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
return true;
}
});
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_details, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
// request a window without the title
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
return dialog;
}
}