Android Open Fragment over ViewPager

时间:2013-04-24 04:13:34

标签: android android-fragments android-viewpager

我是Android编程的新手,我正在尝试制作一个在一个主要片段活动中使用viewpager中的标签的应用。 viewpager和标签工作正常,但我想有一个选项菜单,当选择一个项目时,打开一个全新的片段,但我似乎无法删除视图寻呼机。我希望能够将新片段放在主屏幕上的viewpager上,但尝试使用片段事务处理似乎无法正常工作

有什么想法吗?

感谢您的时间

2 个答案:

答案 0 :(得分:3)

确保:

1)您的片段(例如:ViewPagerFragment1)将由viewpager选择,它具有FrameLayout作为根布局,其id为#34; container" e.g:

<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。 E.g:

 @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;
    }
}

答案 1 :(得分:2)

好吧,您将使用我假设的Fragment的ID将FrameLayout添加到某个FrameLayout。只需确保FrameLayout添加Fragment的{​​{1}}位于ViewPager之上。

例如,如果ViewPagerFrameLayout都在RelativeLayout容器中,请确保FrameLayout声明在ViewPager下方XML 1}}。这会将FragmeLayout堆叠在ViewPager之上。将Fragment添加到FrameLayout后,它将被绘制在最顶层。