ViewPager找不到符号类ScreenSlidePageFragment

时间:2019-06-13 19:50:51

标签: android android-studio

我正在尝试使用ViewPager和Fragments开发滑动幻灯片活动。我正在按照Android文档中的教程在ScreenSlideActivity中编写此代码。 (https://developer.android.com/training/animation/screen-slide

但是在本教程的代码中,有一个未定义的方法,并且我有一个异常,说“无法解析符号类ScreenSlidePageFragment” 似乎该方法尚未定义,但我不知道如何编写,因为我不知道该方法的作用。

我希望有人能帮助我!

@Override
        public Fragment getItem(int position) {
            return new ScreenSlidePageFragment();
        }

这是完整的代码

 package com.flixarts.ar.englishnow;

    import android.os.Bundle;
    import android.support.design.widget.FloatingActionButton;
    import android.support.design.widget.Snackbar;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentStatePagerAdapter;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.support.v4.app.FragmentPagerAdapter;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.View;

    public class ScreenSlideActivity extends FragmentActivity {

        private static final int NUM_PAGES = 3;

        private ViewPager mPager;

        private PagerAdapter pagerAdapter;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_screen_slide);

            mPager = (ViewPager) findViewById(R.id.pager);
            pagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
        mPager.setAdapter(pagerAdapter);
    }

        @Override
        public void onBackPressed() {
            if (mPager.getCurrentItem() == 0) {
                // If the user is currently looking at the first step, allow the system to handle the
            // Back button. This calls finish() on this activity and pops the back stack.
            super.onBackPressed();
        } else {
            // Otherwise, select the previous step.
            mPager.setCurrentItem(mPager.getCurrentItem() - 1);
        }
    }

    private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
        public ScreenSlidePagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return new ScreenSlidePageFragment();
        }


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

}

3 个答案:

答案 0 :(得分:0)

如果没有此片段,请创建它:

public class ScreenSlidePageFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    ViewGroup rootView = (ViewGroup) inflater.inflate(
            R.layout.fragment_screen_slide_page, container, false);

    return rootView;
}

}

答案 1 :(得分:0)

您应该创建自己的Fragment,可以将其返回到适配器中或使用与示例相同的

public class ScreenSlidePageFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        ViewGroup rootView = (ViewGroup) inflater.inflate(
                R.layout.fragment_screen_slide_page, container, false);

        return rootView;
    }
}

答案 2 :(得分:0)

ScreenSlidePageFragment

中定义公共构造函数
 public ScreenSlidePageFragment() {
        // Required empty public constructor
    }