我想复制Google在其应用程序中的菜单,但我不知道是否有像NavigationView和DrawerLayout这样的组件允许制作此菜单,但不是固定在左侧,而是可以居中显示屏幕。我想要制作的菜单截图
我尝试在RelativeLayout(没有DrawerLayout)内创建一个NavigationView并手动将其居中,但我不确定这是否是正确的做法。
如果你想制作一个像谷歌一样的菜单,它实际上没有我们想象的那么复杂。我们可以在不使用 NavigationView 的情况下做到这一点。只需创建一个简单的布局文件并在其中设计菜单即可。之后我们将使用 DialogFragment 来显示菜单。 DialogFragment 应如下所示:
public class MenuDF extends DialogFragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.menu_layout, container, false);
}
@Override
public void onStart() {
super.onStart();
if (getDialog() != null && getDialog().getWindow() != null) {
getDialog().getWindow().setLayout(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
}
}
}
然后我们可以触发片段文件中的菜单。像这样:
findViewById(R.id.menu_button).setOnClickListener(v -> new MenuDF().show(getSupportFragmentManager(), "MenuDF"));