繁体   English   中英

onPageListener 不工作

[英]onPageListener Is Not Working

我需要一些帮助来设置 Fragments 的位置,以便它与onPageListener一起使用,以便我可以设置某些视图的可见性。 由于我是新手,我不太确定如何执行此操作。 感谢您的时间和精力。

主活动.java

public class MainActivity extends FragmentActivity {

    ViewPager viewpager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_launcher);


        drawerGrid = (GridView) findViewById(R.id.content);

        viewpager = (ViewPager) findViewById(R.id.pager);
        PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager());
        viewpager.setAdapter(adapter);
        viewpager.setCurrentItem(1);

        viewpager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {


            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                                                            //need some help here//
                   if(position == 1) {
                       drawerGrid.setVisibility(View.VISIBLE);
                   }  else {
                         drawerGrid.setVisibility(View.GONE);
                       }

                }

            @Override
            public void onPageScrollStateChanged(int state) {

            }

        });

    }

片段.java

public class Fragments extends FragmentPagerAdapter {

    public Fragments(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:                   //need some help here//

                return new Fragment1();

            case 1:

                return new Fragment2();

            default:
                break;
        }
        return null;
    }

    @Override
    public int getCount() {
        return 2;
    }

}

尝试这个:

 ViewPager.OnPageChangeListener pageChangeListener = new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrollStateChanged(int arg0) { }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) { }

    @Override
    public void onPageSelected(int position) {

        switch (position) {
        case 0: 
             drawerGrid.setVisibility(View.GONE);
            break;

        case 1:
            drawerGrid.setVisibility(View.VISIBLE);
            break;
        default:
            break;
        }
    }
});

像这样使用它:

   ViewPager.addOnPageChangeListener(pageChangeListener);

   // do this in a runnable to make sure the viewPager's views are already instantiated before triggering the onPageSelected call
   viewpager.post(new Runnable()
   {
       @Override
       public void run() 
       {
           pageChangeListener .onPageSelected(viewPager.getCurrentItem());
       }
   });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM