新手最近寫APP的時候需要用到ViewPager控制項,但是又不知道是怎麼用的, 理論上像我覺得這樣的新手是應該學習一下它的原理的,這樣才能更好的應用,但是怎麼說呢,沒經驗, 看不太明白,那就用吧,用得多了自然就瞭解了。 從網上找來的代碼有點千篇一律,這也是現在很惡劣的地方,重覆的代碼被各種人發來發去 ...
新手最近寫APP的時候需要用到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 {}
到這就算是結束了,一個老師曾經告訴我,如果你對一個東西不熟悉,那可以再學習時候寫一個博客試試,如果你能讓別人看你的博客也學會了這種寫法,那麼就說明你確實會了,
第一次寫這些東西,我的安卓水平屬於初學者,有所不足是肯定的,希望路過這裡的你,能夠幫助我斧正,多多點評,謝謝.