在我的应用中,我想将菜单显示为列表。我已经有一个现有的菜单XML文件,该文件用于底部导航,但是我将一些菜单项放入了一个单独的菜单XML中,现在我希望将其显示在列表中。
但是到目前为止,我仅找到了将菜单显示为上下文菜单,在抽屉中或作为导航菜单的方法。是否可以在列表中使用菜单XML,还是必须诉诸于标准ListView?这是外观的样机:
这是它的菜单XML(现在只有前两项):
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/nav_illness"
android:title="@string/illness"
android:icon="@drawable/medical" />
<item android:id="@+id/nav_vacation"
android:title="@string/vacation"
android:icon="@drawable/tree" />
</menu>
答案 0 :(得分:0)
使用全屏对话框片段怎么办?您将需要常规的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并在其中填充布局。