5

我是 android 编程的新手,我正在尝试制作一个应用程序,该应用程序使用来自一个主要片段活动的 viewpager 中的选项卡。The viewpager and tabs work fine but I want to have an options menu that when an item is selected, opens a completely new fragment, but I don't seem to be able to remove the view pager. 我希望能够将新片段放在主屏幕上的 viewpager 上,但尝试使用片段事务似乎不起作用

有任何想法吗?

感谢您的时间

4

2 回答 2

5

确保这件事:

1)您的片段(例如:ViewPagerFragment1)将由viewpager选择,具有一个FrameLayout作为根布局,ID为“container”,例如:

<FrameLayout
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:id="@+id/container"
xmlns:android="http://schemas.android.com/apk/res/android">

       <LinearLayout.... and so on
</FrameLayout>

2) 在 ViewPagerFragment1 类中,您必须在触发操作后将新片段替换/添加到 FrameLayout。例如:

 @Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.selection:
            // Create new fragment and transaction
            NewFragment newFragment = new NewFragment();
            FragmentTransaction transaction = getFragmentManager().beginTransaction();

            transaction.replace(R.id.container, newFragment, "NewFragment");
            transaction.addToBackStack(null);

            transaction.commit();
            break;
         default:
            break;
    }
}
于 2014-04-06T15:28:56.897 回答
2

好吧,您将使用我假设的 ID添加Fragment到一些。只需确保您要添加的to 位于.FrameLayoutFrameLayoutFrameLayoutFragmentViewPager

例如,如果ViewPagerFrameLayout都在容器中,则RelativeLayout确保在. 这将堆叠在. 当添加到时,它将被绘制在顶部。FrameLayoutViewPagerXMLFragmeLayoutViewPagerFragmentFrameLayout

于 2013-04-24T05:59:48.213 回答