如何将活动转换为片段以在抽屉中使用

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 个类不是假设的,我真的有那样的,我不知道如何以及将哪一个变成片段

以上是关于如何将活动转换为片段以在抽屉中使用的主要内容,如果未能解决你的问题,请参考以下文章

如何从片段返回主要活动

如何访问活动内部/从活动中的片段视图组件

片段 - 如何将它们与需要操作的活动一起使用?

如何在导航抽屉活动模板中的片段之间传递字符串变量

工具栏 - 只有一个活动从抽屉切换到后退按钮

如何在主片段中单击按钮时打开导航抽屉?