我有一个ViewPager,它包含3个列表片段标签。当在其中一个片段中单击某个项目时,会在我单击该项目的页面上替换新片段。因此,标签仍然可见,但页面正在被替换。
我希望它能替换整个ViewPager,包括标签。也许是因为我的布局配置没有正确完成。
无论如何,这是我正在谈论的流程的截图:
这就是我通过接口调用新片段的方法:
public class UserShopActivity extends FragmentActivity implements
UserItemsFragment.OnUserItemSelectedListener,
UserSelectedCategoryFragment.OnUserItemsSelectedListener,
UserCategoriesFragment.OnUserCategoriesSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_shop);
mViewPager = (ViewPager)findViewById(R.id.shop_pager);
mViewPager.setOffscreenPageLimit(0);
}
...
@Override
public void onUserCategoriesSelected(String category_id) {
UserSelectedCategoryFragment fragment = new UserSelectedCategoryFragment();
Bundle args = new Bundle();
args.putString("category_id", category_id);
fragment.setArguments(args);
mViewPager.setVisibility(View.INVISIBLE);
getSupportFragmentManager().beginTransaction()
.add(R.id.shop_container, fragment)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.addToBackStack(null)
.commit();
}
}
我将ViewPAger的可见性设置为不可见。我的目的是让它消失而不是覆盖布局。问题是我不知道如何让它恢复可见。
activity_view_shop.xml
:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/shop_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/shop_pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
</FrameLayout>
如何用新的ListFragment替换整个ViewPager?当按下后退按钮(软键或后退按钮)时,它会返回ViewPager。
如果遗漏了什么,请告诉我。