首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android全球菜单架构建议

Android全球菜单架构建议
EN

Stack Overflow用户
提问于 2012-09-25 22:11:03
回答 1查看 245关注 0票数 0

我们已经为我们的应用程序实现了一个类似facebook的样式菜单,它基本上允许您单击一个按钮并将视图滑到侧面,以访问隐藏在顶层视图后面的菜单。

目前,我们有我们所有的视图(这个应用程序有很多屏幕)在单独的XML文件中,任何典型的Android应用程序。我要指出的是,我们大量使用了碎片。

我们的目标是将代码抽象出来,而不是将我们的活动和片段膨胀到顶层视图中,而是将其膨胀到这个顶级父级的子类中,它将成为我们所有活动的一部分(我们所有的活动子类都来自自定义活动)。

menu.xml的工作方式是有一个外部FrameLayout,它承载一个嵌套的子FrameLayout,该子FrameLayout是空的。

我们试图避免的是将这个外部菜单代码封装在我们的每个视图XML周围,尽管这肯定会起作用。

我试图找到一种编程方法,将菜单代码与一个文件中的空嵌套FrameLayout放在一起。然后,当我们膨胀片段的XML或活动的XML时,如下所示:

代码语言:javascript
运行
复制
listView = (PullToRefreshListView) inflater.inflate(R.layout.pull_to_refresh_list_view, container, false);

我们没有这样做,而是将其充气到嵌套的子FrameLayout中。像这样的东西是我尝试的:

代码语言:javascript
运行
复制
listView = (PullToRefreshListView) inflater.inflate(R.layout.pull_to_refresh_list_view, container, false);
    ((FrameLayout) getActivity().findViewById(R.id.child)).addView(listView);

当前的结果是:“无法恢复活动。没有为片段MyFragmentid= 0x7f090019找到id 0x7f090019的视图”。

如有任何意见,我们将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-25 22:21:34

对于类似的样式菜单,我所做的就是添加一个框架布局,并在其中膨胀一个片段。然后,我使用translateAnimation和layoutApp将屏幕翻译到正确的位置。我将所有这些代码保存在一个slidingDrawerActivity中,它很好地分割了代码,这样我就可以调用SlideOutMenu来使用它了。

希望这有帮助-如果你想要更多的deets,请告诉我。

编辑:

使用支持库将框架布局替换为片段的代码

代码语言:javascript
运行
复制
FragmentTransaction FT=getFragmentManager().beginTransaction();
FT.replace(R.id.yourFrameLayout, new YourFragment(), yourFragmentTag);
FT.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
FT.commit();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12591836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档