我们已经为我们的应用程序实现了一个类似facebook的样式菜单,它基本上允许您单击一个按钮并将视图滑到侧面,以访问隐藏在顶层视图后面的菜单。
目前,我们有我们所有的视图(这个应用程序有很多屏幕)在单独的XML文件中,任何典型的Android应用程序。我要指出的是,我们大量使用了碎片。
我们的目标是将代码抽象出来,而不是将我们的活动和片段膨胀到顶层视图中,而是将其膨胀到这个顶级父级的子类中,它将成为我们所有活动的一部分(我们所有的活动子类都来自自定义活动)。
menu.xml的工作方式是有一个外部FrameLayout,它承载一个嵌套的子FrameLayout,该子FrameLayout是空的。
我们试图避免的是将这个外部菜单代码封装在我们的每个视图XML周围,尽管这肯定会起作用。
我试图找到一种编程方法,将菜单代码与一个文件中的空嵌套FrameLayout放在一起。然后,当我们膨胀片段的XML或活动的XML时,如下所示:
listView = (PullToRefreshListView) inflater.inflate(R.layout.pull_to_refresh_list_view, container, false);
我们没有这样做,而是将其充气到嵌套的子FrameLayout中。像这样的东西是我尝试的:
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的视图”。
如有任何意见,我们将不胜感激。谢谢!
发布于 2012-09-25 14:21:34
对于类似的样式菜单,我所做的就是添加一个框架布局,并在其中膨胀一个片段。然后,我使用translateAnimation和layoutApp将屏幕翻译到正确的位置。我将所有这些代码保存在一个slidingDrawerActivity中,它很好地分割了代码,这样我就可以调用SlideOutMenu来使用它了。
希望这有帮助-如果你想要更多的deets,请告诉我。
编辑:
使用支持库将框架布局替换为片段的代码
FragmentTransaction FT=getFragmentManager().beginTransaction();
FT.replace(R.id.yourFrameLayout, new YourFragment(), yourFragmentTag);
FT.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
FT.commit();
https://stackoverflow.com/questions/12591836
复制相似问题