我有五个 Activity/屏幕,我希望能够在它们之间滑动,每个 Activity/屏幕都有不同的功能但相互关联,因此在每个 Activity/屏幕之间滑动的 UI 概念。
我发现了很多关于 ViewPager 和 PagerAdapters 等的讨论,但似乎找不到在不同 Activity 屏幕之间滑动切换的讨论。
这可能吗?有人可以用源代码指出我的示例项目吗?或者告诉我如何调整现有教程来完成我想做的事情?
非常感谢,祝你玩得愉快!
最佳答案
您不能使用 ViewPager
在 Activities
之间滑动。您需要将五个 Activity
中的每一个转换为 Fragments
,然后将所有内容与 Adapter
组合成一个 FragmentActivity
与 ViewPager
一起使用。
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);
}
}
这应该在 FragmentActivity
的 onCreate
中调用:
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
的新类。您要覆盖
的前两个方法是onActivityCreated
和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;
}
}
关于 Activity 之间的Android PagerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9855791/