用户处于第二个片段时禁用第一个片段

时间:2016-05-26 10:27:32

标签: android android-fragments android-viewpager hide

我创建了一个应用程序,并在应用程序启动时包含了视图寻呼机圆圈指示器作为启动教程。第一个片段屏幕显示应用程序的名称,第二个片段屏幕显示使用应用程序的基本步骤,而第三个屏幕显示您已准备好使用应用程序然后应用程序启动。现在的问题是,当用户处于第二个片段屏幕时,我想要禁用第一个片段屏幕,以便在页面swip上不再显示SPLASH屏幕片段屏幕。当用户转到第二个片段时,第一个屏幕被禁用/锁定/隐藏任何不允许用户移动到第一个屏幕的内容。

这是我的onPageChangeListener

代码
private void setTab(){
        _mViewPager.addOnPageChangeListener(new OnPageChangeListener(){

                    @Override
                    public void onPageScrollStateChanged(int position) {}
                    @Override
                    public void onPageScrolled(int arg0, float arg1, int arg2) {}
                    @Override
                    public void onPageSelected(int position) {
                        // TODO Auto-generated method stub
                        btnAction(position);
                        if (position == 1)
                        {

                        }

                    }

                });

现在我尝试了这样的位置:

if (position == 1)
{
getSupportFragmentManager().beginTransaction().remove(LayoutOne.newInstance(getApplicationContext())).commit();
}

但它不起作用。请帮助隐藏/禁用/锁定第一个片段屏幕

4 个答案:

答案 0 :(得分:0)

       private Fragment fr;
       private FragmentTransaction ft;
       fr = new NextFragment();
       ft = getFragmentManager().beginTransaction();
       ft.replace(R.id.your_replace_container, fr).addToBackStack(null).commit();

您可以通过旧片段替换它来启动/调用新片段,如:

       ft.replace()... 

并且您可以将旧的一个添加到堆栈中,以便在返回键上从移动的位置获取屏幕上的旧片段!

      ft.replace()...addToBackStack()... //on back key 

尝试编辑或执行上述操作。

答案 1 :(得分:0)

您应该使用FragmentPagerAdapter来处理片段的导航并在viewpager中设置该适配器

答案 2 :(得分:0)

最好的解决方案是从viewpager中删除相关的片段。看看这个图书馆

https://github.com/commonsguy/cwac-pager

答案 3 :(得分:0)

使用以下代码。这会对你有所帮助。

FragmentTransactionfragmenttransaction = getSupportFragmentManager().beginTransaction();
FirstFragment regcomplainfragment = new FirstFragment();
fragmenttransaction.replace(R.id.content_frame, regcomplainfragment).addToBackStack("tag");
fragmenttransaction.commit();