活动间的Andr​​oid PagerViewAndr、oid、PagerView

2023-09-12 04:15:28 作者:童话再美终是假的ヽ

我有五个活动/屏幕,我想能够之间刷卡,每个人都有不同的功能,但都是相互关联的每一间刷卡的,因此用户界面的概念。

I have five activities/screens that I would like to be able to swipe between, each has a different function but are interrelated hence the UI concept of swiping between each.

我已经找到了解决ViewPager和PagerAdapters等多次讨论,但似乎无法找到一个刷卡的地方活动不同屏幕之间切换。

I have found many discussions around ViewPager and PagerAdapters etc. but cannot seem to find one where swiping switches between different activity screens.

这甚至可能吗?可能有人点我对这样的一个例子项目源$ C ​​$ C?或者告诉我如何适应现有的教程做什么,我希望?

Is this even possible? Could someone point me towards an example project of this with source code? Or show me how to adapt an existing tutorial to do what I wish?

感谢这么多,有一个很好的!

Thanks so much, have a good one!

推荐答案

您无法使用 ViewPager 活动。你需要转换你每次5 活动片段,然后结合一切都在一个 FragmentActivity 适配器您使用 ViewPager

You can't use ViewPager to swipe between Activities. You need to convert each of you five Activities into Fragments, then combine everything in one FragmentActivity with the Adapter you use with ViewPager.

这里有一个链接的进入细节将你当前的活动信息片段

Here's a link that goes into detail on converting your current Activities info Fragments.

这是Android开发者网站上的片段话题,它有很多有用的信息。

This is the Fragment topic on the Android Developers website, it has a lot of useful info.

这里的另一个例子(完整的源代码),其膨胀 TextViews 每一页上。

Here's another example (full source) that inflates TextViews on each page.

下面是我打了一个例子:

Here's an example that I typed up:

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);
    }
}

这应该叫的onCreate 你的 FragmentActivity

This should be called in onCreate of your 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);
}

这是你使用的布局的一个例子你的 FragmnetActivity

This is an example of the layout you'd use for your 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>

要创建片段创建扩展片段一个新的类。你会想前两种方法覆盖 onActivityCreated onCreateView

To create Fragment create a new class that extends Fragment. The first two methods you'll want to override are onActivityCreated and onCreateView.

这里是你如何能做到这一点:

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;
    }
}