如何将活动转换为片段以在抽屉中使用
Posted
技术标签:
【中文标题】如何将活动转换为片段以在抽屉中使用【英文标题】:How to convert activities to fragments to use in drawer 【发布时间】:2014-10-12 14:23:22 【问题描述】:我打算将我的应用程序中的活动转换为片段以实现抽屉。但我以前从未使用过片段,它们看起来有点复杂,所以我寻求一些快速帮助:
从活动转换为片段的基本“规则”是什么?
到目前为止,我所拥有的只是
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
变成
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
return inflater.inflate(R.layout.activity_main, container, false);
还有什么?我想我还必须将每个布局从线性/相对更改为片段。
编辑我似乎无法正确理解。我有 3 项活动:
A - 基本活动,无布局,启动服务,线程,做很多事情。大多数后端
B - 扩展 A,有一个布局。这是主要的启动活动。最前端
C - 扩展 A,有一个布局。它是通过 B 的按钮启动的。
关于哪些以及如何将它们变成碎片的任何建议?
【问题讨论】:
查看我布置的这个基本项目设置,我认为它可以相当清楚地了解 Fragments 的工作原理:codereview.stackexchange.com/questions/57543/… 【参考方案1】:让您的片段继承自 Fragment 或适当的子类。
确保您的主要活动在 XML 中有一个 DrawerLayout。您也可以使用
getFragmentManager().beginTransaction.Add
将您的抽屉添加到视图中。
额外参考:http://developer.android.com/training/implementing-navigation/nav-drawer.html http://developer.android.com/guide/components/fragments.html
【讨论】:
我已经在主要活动中实现了抽屉。我的问题是将其他活动转换为片段以将它们添加到此处 将活动转换为片段的工作量应该很小,因为它们非常相似。你有什么具体的问题我可以解决吗? 一些关于如何转换的简单说明,比如“this turn to that”,因为我完全没有使用 Fragments 的经验,所以我不知道我应该改变什么,我应该删除什么以及我应该删除什么应该添加 我对您的建议是继续进行并尽可能地对其进行转换。不要让您的经验不足阻碍您进行实验和开拓。两者之间的变化非常小。主要区别在于您如何在应用程序中添加它,无论是通过 XML 还是通过代码。如果您遇到无法解决的问题,请告诉我,我会为您提供帮助。 当我从扩展活动更改为扩展片段时,一切都变得混乱。我必须把 getActivity() 到处都是吗? (并用 getActivity() 替换所有“this”)【参考方案2】:好的,那么让我们保持简单。假设我有想要放入活动的 ListFragment。我添加它的一种方法是:
将 frame_layout 添加到 xml 并使用布局设置并将其标识为“@id+/example_list”在活动的onCreate中,添加代码
CustomListFragmentClass myCustomListFragmentClass;
getFragmentManager().beginTransaction()
.replace(R.id.example_list, myCustomListFragmentClass, "listFrag").commit();
片段现在应该可见了。
【讨论】:
我不知道这是什么意思 :) 这与我的编辑有关吗?因为这 3 个类不是假设的,我真的有那样的,我不知道如何以及将哪一个变成片段以上是关于如何将活动转换为片段以在抽屉中使用的主要内容,如果未能解决你的问题,请参考以下文章