我有五个活动/屏幕,我希望能够在两者之间滑动,每个都有不同的功能,但是相互关联,因此每个滑动界面的UI概念都相互关联。安卓PagerView活动之间
我发现了围绕ViewPager和PagerAdapters等的许多讨论,但似乎无法找到在不同活动屏幕之间滑动切换的地方。
这甚至可能吗?有人可以通过源代码指向这个示例项目吗?或者告诉我如何改编现有的教程来做我想做的事情?
非常感谢,有一个很好的!
我有五个活动/屏幕,我希望能够在两者之间滑动,每个都有不同的功能,但是相互关联,因此每个滑动界面的UI概念都相互关联。安卓PagerView活动之间
我发现了围绕ViewPager和PagerAdapters等的许多讨论,但似乎无法找到在不同活动屏幕之间滑动切换的地方。
这甚至可能吗?有人可以通过源代码指向这个示例项目吗?或者告诉我如何改编现有的教程来做我想做的事情?
非常感谢,有一个很好的!
您不能使用ViewPager
在Activities
之间滑动。您需要将5个Activities
中的每一个转换为Fragments
,然后将一个FragmentActivity
中的所有内容与您使用的Adapter
合并为ViewPager
。
Here's a link详细信息将转换您当前的Activities
信息Fragments
。
这是Android Developers网站上的Fragment topic,它有很多有用的信息。
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);
}
}
这一点应在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);
}
这是一个y的例子ou'd使用您的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
一个新的类。前两种方法,你想要override
是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;
}
}
通过google找到了这个;设置适配器时出现错误:“this.mPagerAdapter”。 “mPagerAdapter无法解析或不是字段”。这是我唯一的错误。 mPagerAdapter在PagerAdapter中工作。不知道如何解决它。如果我删除“这个”。我得到一个警告,说明initialisePaging()不在本地使用。感谢来自这些人的任何帮助 – 2012-11-10 19:48:30
我有一个问题,Aneal,如何从FragmentOne向此适配器添加新的片段?因为我有这种片段“排序的主屏幕”,如果我点击那里的东西,那么它会带我到其他屏幕,在这种情况下,另一个片段,等等......我如何实现这一目标? – ely87 2012-12-18 16:00:23
getItem(int position)被调用两次,从而给indexOutOfBound异常... – 2014-09-08 10:55:42
修为mPageradapter
PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager());
pagerAdapter.addFragment(fragmentOne);
pagerAdapter.addFragment(fragmentEvents);
viewPager = (ViewPager) super.findViewById(R.id.pager);
viewPager.setAdapter(pagerAdapter);
doenst为我工作得到了一个空指针例外! – JavaNullPointer 2013-06-21 15:14:52
getItem(int position)被调用两次,因此给出indexOutOfBound异常 – 2014-09-08 10:55:58
我不能为您指出与活动的例子。如果您愿意,我可以提供使用兼容包操作栏选项卡和碎片与ViewPager的应用程序的代码示例。基本上,每个选项卡都是一个片段,托管在一个主要活动中(尽管我的应用正在稳步增长其他任务的其他活动)。但是你必须愿意使用碎片,而不是活动。感兴趣吗? – Davek804 2012-03-24 04:48:29