Articles of android viewpager

PagePadapter中的InstantiateItem和ViewPager中的AddView混淆

到目前为止,我一直在黑客一起使用示例来感受整个Anfroid SDK的API。 但是我陷入了僵局。 我想从一个XML文件中使用2个TextViews对一个LinearLayout进行充气。 这些将是分页视图。 我只是无能为力,并意识到我完全不明白代码中发生了什么。 看看源代码,我可以看到ViewPager.addNewItem方法从提供的适配器调用InstantiateItem。 并且在populate()中调用addNewItem。 填充在其他地方被调用。 无论如何,在我已经看到的方法被重载的PagerAdapter的例子中,你必须包括一个调用AddView的ViewPager收集从viewpager作为parameter passing。 如果我想添加多个视图,我认为这将是不止一次调用addView的情况,但作为instantiateItem返回一个Object到ViewPager(在这个例子中,我有它返回的视图,它添加),我不知道该怎么回报。 我已经尝试返回充气的视图和一些其他的东西。 请有人可以解释这里发生了什么? 非常感激。 中号 @Override public Object instantiateItem(View collection, int position) { layout = inflater.inflate(R.layout.animallayout, null); TextView tv = (TextView) layout.findViewById(R.id.textView1); tv.setText("1________________>" + position); TextView tv2 = (TextView) layout.findViewById(R.id.textView2); tv.setText("2________________>" + position); ((ViewPager) collection).addView(layout); return layout; }

如何获得给定项目的ViewPager的子视图

我会尽量保持简短和简单的问题。 View activeView = mViewPager.getChildAt(mViewPager.getCurrentItem()); 当前项目是0和1时返回子视图。但是,如果当前项目是2,则返回null 。 这是为什么? 编辑:让我重述一下自己。 如何在任何给定的项目位置获得ViewPager的子View?

使用工具栏与片段

我正在尝试创build一个viewpager,通过3个不同的片段,每个都有不同的工具栏。 我已经在一个活动之前实现了新的工具栏,并得到它的工作,但我试图让它与碎片工作 这是片段代码 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout resource that'll be returned View rootView = inflater.inflate(R.layout.fragment_home, container, false); mToolbar = (Toolbar) rootView.findViewById(R.id.toolbar_home); if (mToolbar != null) { setSupportActionBar(mToolbar); } mToolbar.setTitle(null); return rootView; } 我用Fragment扩展我的片段,但是我得到错误 Cannot resolve method setSupportActionBar 我不知道如何解决这个问题,如果我删除setSupportActionBar代码将停止使用某些设备? 谢谢

在恢复活动时刷新FragmentStatePagerAdapter上的图像

我创build了一个使用FragmentStatePagerAdapter来提供小型图库的活动。 但是,当活动恢复后(例如,从其他活动回来后),我无法恢复它。 每次前两张照片都是空白的,只有当我把两张照片刷到一边后,才会刷新。 我没有find工作的答案(尤其是重写getItemPosition() ) 我这样设置: mPagerAdapter = new PhotosPagerAdapter(getSupportFragmentManager()); mPager = (ViewPager) findViewById(R.id.photosViewPager); mPager.setAdapter(mPagerAdapter); 然后我有FragmentStatePagerAdapter类: private class PhotosPagerAdapter extends FragmentStatePagerAdapter{ public PhotosPagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return photos.size(); } @Override public Fragment getItem(int position) { ImageFragment f = new ImageFragment(position); return f; } @Override public int getItemPosition(Object object) { […]

Android Fragments上的“内容视图尚未创build”

我正在使用viewpager安装程序使用Android Fragments。 基本上有5个标签,你可以刷卡。 5中的4个包含由MySQL表填充的ListFragments ; 这是在一个AsyncTask里完成的。 当我刷卡速度很快,我有时会得到这个错误: 09-01 07:54:01.243: E/AndroidRuntime(19706): FATAL EXCEPTION: main 09-01 07:54:01.243: E/AndroidRuntime(19706): java.lang.IllegalStateException: Content view not yet created 09-01 07:54:01.243: E/AndroidRuntime(19706): at android.support.v4.app.ListFragment.ensureList(ListFragment.java:328) 09-01 07:54:01.243: E/AndroidRuntime(19706): at android.support.v4.app.ListFragment.getListView(ListFragment.java:222) 09-01 07:54:01.243: E/AndroidRuntime(19706): at com.—.—.MasterCat$TopFrag$TopTask.onPostExecute(MasterCat.java:570) 09-01 07:54:01.243: E/AndroidRuntime(19706): at com.—.—.MasterCat$TopFrag$TopTask.onPostExecute(MasterCat.java:1) 09-01 07:54:01.243: E/AndroidRuntime(19706): at android.os.AsyncTask.finish(AsyncTask.java:631) 09-01 07:54:01.243: E/AndroidRuntime(19706): at android.os.AsyncTask.access$600(AsyncTask.java:177) 09-01 07:54:01.243: E/AndroidRuntime(19706): […]

如何更新活动(viewpager)的片段内容?

我有一个简单的viewPager与两个片段。 每个片段都包含一个TextView。 我想能够更新从活动显示的当前textView的文本。 活动: public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); ArrayList<Fragment> fragments = new ArrayList<Fragment>(); fragments.add(Fragment.instantiate(this, Live.class.getName())); fragments.add(Fragment.instantiate(this, Hit.class.getName())); this.pagerAdapter = new MyPagerAdapter(getSupportFragmentManager(),fragments); ViewPager pager = (ViewPager) findViewById(R.id.viewpager); pager.setAdapter(pagerAdapter); } } 适配器: public class MyPagerAdapter extends FragmentPagerAdapter { private final ArrayList<Fragment> fragments; public MyPagerAdapter(FragmentManager fm, ArrayList<Fragment> fragments) […]

在viewpager中的3个android碎片,如何让它们都活着?

我有一个视图至less有3个片段。 如果用户将数据input到A中,则Binput数据,然后inputC并返回到数据从A中丢失。 我想我在某个地方看到这和内存pipe理有关,因为当我离得太远的时候,碎片只能连接或者存储相邻的碎片。 但是,我希望保留每个片段的生命,即使我有> 3。 除非明确指示,否则我怎么能告诉Viewpager不要杀死一个片段?

Eclipse不会将项目识别为库(ActionBarSherlock / ViewPagerIndicator)

我试图让我的项目设置ActionBarSherlock和ViewPagerIndicator库,但我似乎遇到了一些问题。 我早些时候给杰克·沃顿(开发者)发了一些消息,并得到了一些答复,但没有得到任何答案 – 我想他还忙于其他一些事情。 我的问题是VPI和ABS 这两个库打开没有任何错误,我使用编译器版本1.6所有需要的。 有趣的是,如果我加载提供的样本 – 它们工作正常,并链接到他的图书馆; 但是当我去添加库到我的项目 – 上述情况发生。

将图标添加到SlidingTabLayout而不是文本

我在我的Android应用程序中实现SlidingTabLayout。 我的查询是,我想在我的滑动选项卡中实现图标,而不是导航文本。 我在网上search了很多这样的教程或样本,但没有find。 我也search了一个以前的问题上的stackoverflow: 在这里 – SlidingTabLayout与图标 。 这是有点信息,但没有真正帮助我。 要清楚。 我需要我的标签只包含图标 。 没有文字。 由于我是这个整体设置的新手,我很感激,如果你将正确的代码与解释。 感谢您的时间和精力! PS 我也听说过安德烈亚斯·斯图茨(Andreaz Stuetz)的翻页贴,想知道这是否会更适合我要去的东西的types… 另外:这是我想我的滑动标签看起来像。 看看这个图像的顶部。 编辑:现在,LOLLIPOP(与材料devise)已经出来。 我在使用工具栏(ANDROID 5.0 ACTION-BAR)之后,使用了一个新的“唯一图标” SLIDING-TAB-LAYOUT看到了许多应用程序。 是否有任何新的方式来执行这个? 再次感谢!

设置当前项目/页面时,Android ViewPager抛出IndexOutOfBoundsexception

我有一个ViewPager有三个项目。 我试图设置ViewPager查看最右边的页面(这将是第二个元素)。 这是返回一个IndexOutOfBoundsexception,但我知道索引应该是在边界。 这里是确切的堆栈: 02-22 12:22:50.256: E/AndroidRuntime(384): FATAL EXCEPTION: main 02-22 12:22:50.256: E/AndroidRuntime(384): java.lang.IndexOutOfBoundsException: index=1 count=0 02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.addInArray(ViewGroup.java:2050) 02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.addViewInner(ViewGroup.java:1994) 02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.addViewInLayout(ViewGroup.java:1958) 02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.addViewInLayout(ViewGroup.java:1939) 02-22 12:22:50.256: E/AndroidRuntime(384): at android.support.v4.view.ViewPager.addView(ViewPager.java:917) 02-22 12:22:50.256: E/AndroidRuntime(384): at android.view.ViewGroup.addView(ViewGroup.java:1828) 02-22 12:22:50.256: E/AndroidRuntime(384): at us.tagverse.pagertest.MasterActivity$PAdapter.instantiateItem(MasterActivity.java:518) 02-22 12:22:50.256: E/AndroidRuntime(384): at […]