活动之间的Android PagerView

rab*_*itt 8 android swipe android-activity

我有五个活动/屏幕,我希望能够在它们之间滑动,每个活动/屏幕具有不同的功能,但是相互关联,因此在每个之间滑动的UI概念.

我发现很多关于ViewPager和PagerAdapters等的讨论,但似乎找不到一个滑动在不同活动屏幕之间切换的地方.

这甚至可能吗?有人能指出我的源代码示例项目吗?或者告诉我如何调整现有教程来做我想做的事情?

非常感谢,有一个好的!

adn*_*eal 27

你不能用它ViewPager来刷卡Activities.你需要给每个你五转换ActivitiesFragments,然后结合在一个一切都FragmentActivityAdapter你使用ViewPager.

这是一个关于转换当前Activities信息的详细链接Fragments.

这是Android开发者网站上的Fragment主题,它有很多有用的信息.

这是另一个TextViews在每个页面上膨胀的示例(完整源代码).

这是我打字的一个例子:

PagerAdapter:

public class PagerAdapter extends FragmentPagerAdapter {

    private final List<Fragment> mFragments = new ArrayList<Fragment>();

    public PagerAdapter(FragmentManager manager) {
        super(manager);
    }

    public void addFragment(Fragment fragment) {
        mFragments.add(fragment);
        notifyDataSetChanged();
    }

    @Override
    public int getCount() {
        return mFragments.size();
    }

    @Override
    public Fragment getItem(int position) {
        return mFragments.get(position);
    }
}
Run Code Online (Sandbox Code Playgroud)

这应该在onCreate你的FragmentActivity:

    private void initPaging() {

    FragmentOne fragmentOne = new FragmentOne();
    FragmentTwo fragmentTwo= new FragmentTwo();

    PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager());
    pagerAdapter.addFragment(fragmentOne);
    pagerAdapter.addFragment(fragmentTwo);

    ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
    viewPager.setAdapter(pagerAdapter);
}
Run Code Online (Sandbox Code Playgroud)

这是您用于以下的布局示例FragmnetActivity:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<android.support.v4.view.ViewPager
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

要创建Fragment创建一个扩展的新类Fragment.前两种方法你会想overrideonActivityCreatedonCreateView.

这是你如何做到这一点:

public class FragmentOne extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(THE_LAYOUT_FROM_YOUR_ORIGINAL_ACTIVITY, container, false);
    return view;
    }
}
Run Code Online (Sandbox Code Playgroud)