欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

ViewPager初体验

程序员文章站 2022-06-26 10:27:46
新手最近写APP的时候需要用到ViewPager控件,但是又不知道是怎么用的, 理论上像我觉得这样的新手是应该学习一下它的原理的,这样才能更好的应用,但是怎么说呢,没经验, 看不太明白,那就用吧,用得多了自然就了解了。 从网上找来的代码有点千篇一律,这也是现在很恶劣的地方,重复的代码被各种人发来发去 ......

  新手最近写APP的时候需要用到ViewPager控件,但是又不知道是怎么用的,

理论上像我觉得这样的新手是应该学习一下它的原理的,这样才能更好的应用,但是怎么说呢,没经验,

看不太明白,那就用吧,用得多了自然就了解了。

  从网上找来的代码有点千篇一律,这也是现在很恶劣的地方,重复的代码被各种人发来发去的,我自己整理了一下

自己实现的代码,我觉得很适合小白,因为我自己就是一个小白新手。

 

首先新建一个窗体(或者叫页面?小白自学安卓还真的对基础一无所知)

ViewPager初体验

 

然后在ViewPager所在的Activity(我这里是MainActivity) ,AppCompatActivity之后,大括号之前 加上  implements  刚才建立的窗体名.OnFragmentInteractionListener

 

public class MainActivity extends AppCompatActivity implements MyFragment.OnFragmentInteractionListener {}

 

这个时候会出现红线,光标移到 MyFragment 上,ALT+Enter  添加无参的 onFragmentInteraction ()方法

 

  @Override
    public void onFragmentInteraction(Uri uri) {

    }

 

然后就是适配器了

 

 ArrayList<MyFragment> s=new ArrayList<>(); //写在方法外
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        s.add(MyFragment.newInstance("1","1"));
        s.add(MyFragment.newInstance("2","2"));
        s.add(MyFragment.newInstance("3","3"));  
        ViewPager viewPager=findViewById(R.id.ppp);
        FragmentPagerAdapter adapter=new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int position) {
                return s.get(position); //当前选中的索引
            }
            @Override
            public int getCount() {
                return s.size(); //集合大小
            }
        };
        viewPager.setAdapter(adapter);  //设置十适配器
    }

 

这个我自己遇到了s.get(position) 报红的问题,返回值类型不同,因为adapter需要的返回值是

 android.support.v4.app.FragmentPagerAdapter  这个包里的,但是自己创建的那个窗体继承的
Fragment 是来自于
android.support.v4.app.Fragment;这个包的

所以在 MyFragment 中 更改一下
public class MyFragment extends Fragment {}

->>

public class MyFragment extends android.support.v4.app.Fragment {}

 

到这就算是结束了,一个老师曾经告诉我,如果你对一个东西不熟悉,那可以再学习时候写一个博客试试,如果你能让别人看你的博客也学会了这种写法,那么就说明你确实会了,

第一次写这些东西,我的安卓水平属于初学者,有所不足是肯定的,希望路过这里的你,能够帮助我斧正,多多点评,谢谢.