重用Fragment或布局文件

时间:2017-01-30 15:54:23

标签: android android-fragments xml-layout

我正在制作一个英语教育应用,其活动使用viewPager返回大量片段。该应用程序将有其他单位使用其他活动,这些活动使用viewPager返回相同的片段(减去一些单词更改和订单更改)。重用片段的最佳方法是什么?我应该在另一个活动中实现这些片段吗?如果是这样,如果在后一个堆栈中的另一个活动已经使用了相同的片段时,如果在新活动中实现片段,是否可能会出现问题?或者是否有另一种方法可以重用我的片段或布局文件?提前谢谢。

2 个答案:

答案 0 :(得分:1)

是的,您可以多次重复使用您的片段和活动。首先,您的活动必须是碎片的容器,尽量不要对您的活动承担很多责任。您可以创建一个BaseActivity并将一个布局(例如Relative Layout)作为片段容器,然后在从基类实现的每个活动中,您可以调用基本替换片段方法。

private void changeFragment(Fragment targetFragment){

    getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.main_fragment, targetFragment, "fragment")
        .setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
        .commit();
}

在这里你应该为每个不同的片段更改“片段” TAG,然后当你获得TAG时,在新片段中你可以识别出哪个片段。所以最好做这部分抽象方法。

答案 1 :(得分:0)

可重用性是使用Fragment的主要好处之一,因此您应该尽可能地尝试重用它们。来自Android文档(https://developer.android.com/guide/components/fragments.html

You can (...) reuse a fragment in multiple activities

由于Android会在您重复使用时为Fragment创建新的实例化,因此不应存在与现有Fragment冲突的风险(只要您不使用静态变量)它们之间共享。)