动态地在相同选项卡上的viewpager中更改片段

时间:2017-07-13 11:36:27

标签: android android-fragments android-viewpager

我正在制作标签。我正在使用view pager。并指定片段其工作,但我想更改内容或替换片段,但我想留在相同的选项卡上。假设当我单击选项卡上的按钮时我在选项卡中我想要更改选项卡上的片段。但是标签不应该改变。如何做。

ViewPagerAdapter adapter = ne  ViewPagerAdapter(getSupportFragmentManager());
    adapter.addFragment(new General(), "General");
    adapter.addFragment(new Educat(), "Education");
    adapter.addFragment(new Profetiona(), "Experience");
    adapter.addFragment(new Skills(), "Skills");
  

所以,当我在标签0这是一般标签时,我点击一个按钮我想在标签0中将一般广告替换为infoFragement。我不想刷选项卡我只想更改内容或加载新的方法

1 个答案:

答案 0 :(得分:0)

您可以使用嵌套片段。 例如,在General片段中,您可以在开头加载ChildFragment1,然后在按钮单击后将其替换为ChildFragment2。

fragment_general.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:orientation="vertical">

    <View
        android:id="@+id/view_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</FrameLayout>

GneralFragment.java

//Call this at the beginning
private void loadChildFragment1(){
    getChildFragmentManager()
                    .beginTransaction()
                    .replace(R.id.view_container,
                            new ChildFragment1()
                    .commit();
}

//Call this after the click
private void loadChildFragment2(){
    getChildFragmentManager()
                    .beginTransaction()
                    .replace(R.id.view_container,
                            new ChildFragment2()
                    .commit();
}