滑动视图和多个片段Android

时间:2014-11-11 03:57:15

标签: android android-fragments swipe

我试图创建一个具有两个功能不同的片段的应用程序,您可以向右滑动以在它们之间移动。我已经研究过如何做到这一点,但似乎没有解决方案可行。 Tabs and Swipe - editing the getItem to display 3 different fragments 我试图实现类似于此的getitem,但正如您在此代码中看到的那样:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * Created by cwallace on 11/10/14.
 */
//Implement PagerAdapter Class to handle individual page creation
class MyPagesAdapter extends FragmentPagerAdapter {
    public MyPagesAdapter(FragmentManager fm) {
        super(fm);
    }

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

    @Override
    public Fragment getItem(int position) {
        Fragment fragment =  new InitialFragment();
        return fragment;
    }
}

我想返回一个不同于函数所需的不同类型的片段,我无法将我的初始片段转换为Fragment类。我甚至试图以正确的方式做到这一点吗?

2 个答案:

答案 0 :(得分:0)

尝试这种方式:

class MyPagesAdapter extends FragmentPagerAdapter {
    public MyPagesAdapter(FragmentManager fm) {
        super(fm);
    }

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

    @Override
    public Fragment getItem(int position) {
        Fragment fragment = null;
        switch(position) {
            case 0:
                fragment = new InitialFragment();
                break;
            case 1:
                fragment = new YourSecondFragment();
                break;
        }
        return fragment;
    }
}

答案 1 :(得分:0)

让我们指出一些事情。

  1. can't cast my Initial Fragment,确保您的initialFragment类扩展了片段。
  2. 正如@ hitch.united建议,在适配器的getItem()中,您可以通过if-else中的id返回片段。但请记住:您不应该使用此功能来检索片段!
  3. 我建议您使用 ViewPager 进行滑动操作。