Activity 之间的Android PagerView

标签 android android-activity swipe

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

我发现了很多关于 ViewPager 和 PagerAdapters 等的讨论,但似乎找不到在不同 Activity 屏幕之间滑动切换的讨论。

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

非常感谢,祝你玩得愉快!

最佳答案

您不能使用 ViewPagerActivities 之间滑动。您需要将五个 Activity 中的每一个转换为 Fragments,然后将所有内容与 Adapter 组合成一个 FragmentActivityViewPager 一起使用。

Here's a link其中详细介绍了如何转换您当前的 Activities 信息 Fragments

这是 Fragment topic在 Android 开发者网站上,它有很多有用的信息。

Here's another example (完整源代码)在每个页面上膨胀 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);
    }
}

这应该在 FragmentActivityonCreate 中调用:

    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 的布局示例:

<?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>

要创建 Fragment,请创建一个扩展 Fragment 的新类。您要覆盖 的前两个方法是onActivityCreatedonCreateView

您可以这样做:

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

关于 Activity 之间的Android PagerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9855791/

相关文章:

android - 在 Android 应用程序中使用 Activity 或 Fragment

android - Android 中从左向右滑动手势的问题

android - 当我按按钮转到“滑动选项卡”菜单时,Android应用程序崩溃

ios - 如何在 SwiftUI 中以编程方式在屏幕的某些部分模拟点击/滑动手势?

java - Appium 没有点击一个元素

android - 适用于 Android Studio 的 GStreamer 教程

java - 将数据存储到 Parse 中时出现问题 - 使用 TextView

Android - 在 API 8 中的页面之间滑动

android - 适用于 Linux 上的 Android 的 Poco C++

android - 当 Activity 处于 onPause 状态时,根据 Intent 恢复应用程序( Activity )