在ViewPager上打开Android碎片

5
我是一名新手安卓开发者,正在尝试制作一个应用程序,它使用一个主fragmentactivity中的viewpager中的选项卡。Viewpager和选项卡功能良好,但我想有一个选项菜单,当选择某个项目时,打开一个全新的fragment,但是我似乎无法删除viewpager。我希望能够在主屏幕上将新的fragment放置在viewpager上,但使用fragmenttransaction尝试这样做似乎没有效果。
有什么建议吗?
谢谢您的时间。
2个回答

5

请确保:

1)你的Fragment(例如: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;
    }
}

2
好的,我会为您翻译相关IT技术内容。假设您要将Fragment添加到某个FrameLayout中,只需使用FrameLayout的ID即可。请确保您要添加FragmentFrameLayout位于ViewPager之上。
例如,如果ViewPagerFrameLayout都在一个RelativeLayout容器中,则请确保在XML中声明FrameLayout位于ViewPager下方。这将使FrameLayout叠加在ViewPager之上。当将Fragment添加到FrameLayout中时,它将被绘制在顶部。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接