Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java onPageListener不工作_Java_Android_Android Fragments_Android Viewpager_Fragmentpageradapter - Fatal编程技术网

Java onPageListener不工作

Java onPageListener不工作,java,android,android-fragments,android-viewpager,fragmentpageradapter,Java,Android,Android Fragments,Android Viewpager,Fragmentpageradapter,我需要一些帮助来设置片段的位置,以便它能够使用onPageListener,这样我就可以设置某些视图的可见性。因为我是新来的,所以我不确定该怎么做。谢谢你的时间和努力 MainActivity.java Fragments.java 试试这个: ViewPager.OnPageChangeListener pageChangeListener = new ViewPager.OnPageChangeListener() { @Override public void onPag

我需要一些帮助来设置片段的位置,以便它能够使用
onPageListener
,这样我就可以设置某些视图的可见性。因为我是新来的,所以我不确定该怎么做。谢谢你的时间和努力

MainActivity.java Fragments.java 试试这个:

 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());
       }
   });

如果(位置==1)
不起作用。我想知道如何定义碎片的位置。谢谢,谢谢。这是一个好方法,但是代码中有很多错误?错误在哪里?您必须在onCreate()之外编写
pageChangeListener
。我这样做了,但是代码有很多错误。另外,
setOnPageListener
已被弃用,因此它的
add
现在就可以了。好的,我修复了它,谢谢,但是我想,
pageChangeListener
不存在。
 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());
       }
   });