Android活动到碎片

时间:2016-02-22 12:28:51

标签: android android-fragments

我正在尝试设计我的应用程序并遇到一些问题。在开始阶段,我在不同的活动中编写所有内容,以确保每件事都有效。现在一切正常,我正在转向设计。我试图用片段代替活动。

我的问题是将活动中的代码复制到片段中,当我这样做时,我面临无数错误,findViewById无法正常工作以及其他功能似乎集中在移动时无效的活动到片段。

我是否可以使用迁移技术将活动更改为碎片?或者我是否必须更改每个功能和错误以适应新的片段?

2 个答案:

答案 0 :(得分:2)

没有迁移技术。您必须手动解决所有错误。作为一般概念,您可以这样做。

  1. 无论您使用findViewById的任何地方,现在都需要执行view.findViewbyId(R.id.view_id);,其中viewFragment内的虚增视图。
  2. 任何专注于或使用Activity上下文的功能都应以getActivity()为前缀。
  3. 无论您使用this还是MyActivity.this之类的地方,都应将其替换为getActivity()

答案 1 :(得分:1)

在Google或YouTube上查找有关如何使用Fragments的基本教程以及Activities作为开头的差异......

例如,findViewById错误是因为在您的片段的onCreateView方法中,在为您的片段充气后,看起来像这样:

View fragmentView = inflater.inflate(R.layout.fragment_host, container, false);

你需要使用我们刚刚发起的fragmentView的findVyewById方法。像那样:

 viewPager = (ViewPager) fragmentView.findViewById(R.id.pager);

如果使用Fragments,通常NavigationDrawer是一个很好用的组件(Toolbar中有汉堡包图标的组件)。要实现这一点,请查看有关新NavigationViewDrawerLayout的教程。您需要design support library,但这将在教程中解释。在托管此DrawerLayout的主要活动的布局xml中,您有一个FrameLayout,您可以在其中放置您应用内容的片段。< / p>