【问题标题】: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 的按钮启动的。

关于哪些以及如何将它们变成碎片的任何建议?

【问题讨论】:

标签: android layout android-activity fragment native


【解决方案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 个类不是假设的,我真的有那样的,我不知道如何以及将哪一个变成片段
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多