The following is layout
test.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click" android:id="@+id/button" /> <!-- Framelayout to display Fragments --> <FrameLayout android:id="@+id/frame_container" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
test_detail.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Hello" android:id="@+id/textView" android:layout_gravity="center_horizontal"/> </LinearLayout>
common_view_pager_layout
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/MainViewerPage" android:layout_width="fill_parent" android:layout_height="fill_parent" > <android.support.v4.view.PagerTabStrip android:id="@+id/TitlePageTabStrip" android:layout_width="match_parent" android:layout_height="wrap_content" /> </android.support.v4.view.ViewPager> </LinearLayout>
The following is my Activity code
public class TestFragmentActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.test); Button button = (Button) this.findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.frame_container, new HomeFragment()).commit(); } }); } public class HomeFragment extends Fragment { private PagerAdapter _adapter; public HomeFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.common_view_pager_layout, container, false); this._adapter = new PagerAdapter(TestFragmentActivity.this); this._adapter.add(new DetailFragment()); ViewPager pager = (ViewPager) view.findViewById(R.id.MainViewerPage); pager.setAdapter(this._adapter); return view; } } public class DetailFragment extends Fragment { public DetailFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.test_detail, container, false); return rootView; } } public class PagerAdapter extends FragmentPagerAdapter { private ArrayList<Fragment> _fragments; public PagerAdapter(FragmentActivity activity) { super(activity.getSupportFragmentManager()); this._fragments = new ArrayList<Fragment>(); } public void add(Fragment fragment) { this._fragments.add(fragment); } @Override public Fragment getItem(int position) { return this._fragments.get(position); } @Override public CharSequence getPageTitle(int position) { return "Test"; } @Override public int getCount() { return 1; } } }
When I click a button the fragment in ViewPager was display
But when I click the button again the fragment disappear
Please help me.