【问题标题】:How can I add a fragment from within a viewpager that covers the viewpager tabs如何从覆盖 viewpager 选项卡的 viewpager 中添加片段
【发布时间】:2014-10-22 23:43:28
【问题描述】:

目前我有一个根据documentation 的viewpager 设置。在第一个片段选项卡中,我设置了一个包含卡片视图列表的回收器视图。在每个卡片视图中,我都有一个应该打开一个新片段的按钮。我希望这个新片段与操作栏选项卡重叠(类似于单击评论按钮时 facebook cmets 的工作方式)。我不知道如何让它工作。我在视图页面上方创建了一个额外的框架布局和相对布局,希望它会重叠,但这似乎不起作用。我怎样才能让我的新片段也覆盖操作栏选项卡?我不是在问如何替换当前的 viewpager 片段是否有意义。

我用红色背景填充了新片段,调用 onclick 监听器后的结果如下所示:http://i.imgur.com/yHYpzGr.png

在我的 onclick 监听器中,我有:

FragmentManager fragmentManager = activity.getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.container, commentFragment,"comment_fragment_tag");
fragmentTransaction.commit();

我的包含 viewpager 的主要活动布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/main_activity">
        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </RelativeLayout>
</FrameLayout>

【问题讨论】:

    标签: android android-fragments android-viewpager fragmenttransaction


    【解决方案1】:

    试试这个..希望它有效

        FragmentManager fragmentManager = activity.getFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.container, commentFragment,"comment_fragment_tag");
        fragmentTransaction.commit();
    

                Fragment fr = new FragmentTwo() ;
                FragmentManager fm = getFragmentManager();
                FragmentTransaction ft = fm.beginTransaction();
                ft.replace(R.id.container, fr);
                ft.commit();
    

    听到 fr 是要被替换的新片段

    【讨论】:

    • 这不包括浏览器标签。结果与我在屏幕截图i.stack.imgur.com/vSXxd.png 中显示的几乎完全相同。我想在现有的 viewpager 片段中启动一个新片段,该片段涵盖导航选项卡。
    • 你想要什么?如果您点击评分最高然后打开一个新片段,或者点击电影然后打开另一个片段......是吗??
    • 我想打开另一个不是 viewpager 选项卡的片段。假设您在游戏片段的中间添加了一个按钮。我希望该按钮启动一个完全独立的片段(不是任何 viewpager 片段)。类似于 Facebook 应用在您对帖子发表评论时所做的事情。
    • 使用替换或添加似乎具有相同的效果。我想一种解决方案是调用 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD) 但这意味着更多的工作。我真的没有看到任何其他方法可以用碎片牵引覆盖它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多