以编程方式设置android:<fragment>的名称

时间:2017-05-08 23:52:28

标签: android android-fragments android-transitions

是否可以从活动类中设置XML布局中添加的名称,我需要在活动中包含的片段之间进行转换,但只能在片段名称之间进行转换,并用新的片段替换片段名称。

 <fragment
        android:name="com.example.harry.comparateur_de_prix.Accueil.AccueilFragment" //To change
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/fragment1">

    </fragment>

2 个答案:

答案 0 :(得分:0)

您想在此处使用FrameLayout

然后use FragmentTransaction用其ID属性

替换该ViewGroup

答案 1 :(得分:0)

首先,您需要更改Activity的XML布局以包含这样的FrameLayout:

<!--Other XML layout elements, view-groups, views etc...; other stuff-->

    <FrameLayout
        android:id="@+id/id_1"
        android:layout_width="@dimen/fl_width"
        android:layout_height="@dimen/fl_height">
    </FrameLayout>

我们现在想做的是;能够替换上面的Activity的XML布局中的FrameLayout,我们刚刚添加了Fragment的一个布局文件的布局。

现在在您的活动文件中

  1. 实例化FragmentManger对象
  2. 通过fragmentManagers beginTransaction()方法获取fragmentTransaction实例。
  3.   /*1)*/  FragmentManager fragmentManager = getSupportFragmentManager();
      /*2)*/  FragmentTransaction ft = fragmentManager.beginTransaction();
    

    然后进行这些更改

    ft.replace(R.id.id_1, new YourFragment());
    ft.commit();
    

    参数YourFragment()将要求您插入其中一个片段的实例 ,这将使用YourFragments()替换FrameLayout的当前布局。我们最终提交了fragmentTransaction。

    如果要替换FrameLayout显示的Fragment,可以简单地开始一个新的片段事务,并用新的Fragment替换帧布局,如上所示。