Android:将菜单显示为列表
在我的应用程序中,我想将菜单显示为列表。我已经有了一个现有的菜单XML文件,我正在使用它进行底部导航,但是我将一些菜单项放入了一个单独的菜单XML中,现在我想将其显示在一个列表中 但到目前为止,我只找到了将菜单显示为上下文菜单、抽屉或导航菜单的方法。是否可以在列表中使用菜单XML,还是必须使用标准的ListView?下面是它应该是什么样子的模型: 这是它的菜单XML(现在只有前两项):Android:将菜单显示为列表,android,navigation,Android,Navigation,在我的应用程序中,我想将菜单显示为列表。我已经有了一个现有的菜单XML文件,我正在使用它进行底部导航,但是我将一些菜单项放入了一个单独的菜单XML中,现在我想将其显示在一个列表中 但到目前为止,我只找到了将菜单显示为上下文菜单、抽屉或导航菜单的方法。是否可以在列表中使用菜单XML,还是必须使用标准的ListView?下面是它应该是什么样子的模型: 这是它的菜单XML(现在只有前两项): 使用全屏对话框片段怎么样?您需要一个普通的xml布局(我不确定是否适用于菜单布局),并且可以在按下按钮/图标
使用全屏对话框片段怎么样?您需要一个普通的xml布局(我不确定是否适用于菜单布局),并且可以在按下按钮/图标后将其充气 在我的应用程序中,我有一个选项菜单,触摸图标时会显示一个对话框片段。活动:
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
case R.id.actionbar_button_config:
FragmentManager fm = getSupportFragmentManager();
YourDialogFragment yourDialogFragment = new YourDialogFragment();
yourDialogFragment.show(fm, "dialog_fragment");
return true;
default:
return super.onOptionsItemSelected(item);
}
片段:
public class YourDialogFragment extends DialogFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(STYLE_NORMAL, 0); // here you can define a full-screen style
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View content = inflater.inflate(R.layout.sensor_config_fragment, null);
builder.setView(content)
.setTitle("Sensor Config")
.setPositiveButton("Done", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
SensorConfigFragment.this.getDialog().cancel();
}
});
return builder.create();
}
这将创建一个带有标题、“完成”和“取消”按钮的对话框片段,但您不必拥有这些按钮。如果您不需要这些,可以使用OnCreateView而不是onCreateDialog,并在那里放大布局。与使用实际活动相比,这里有什么优势?我的问题的全部原因是,我希望能够使用菜单XML,如果我不想使用,那么有很多可能的解决方案。我认为您只能将菜单用作选项/上下文/弹出菜单。就我理解你的问题而言,你想要一个全屏菜单,就像截图上的列表一样,对吗?你可以用一个全屏对话框片段来做类似的事情,这就是优势所在。当然,可能有更好的解决方案。