Articles of android viewpager

更改屏幕方向后,从ViewPager的适配器中销毁项目

所以我在屏幕方向改变后从ViewPager销毁(删除)一个页面时遇到问题。 我将尝试在以下几行中描述问题。 我正在使用FragmentStatePagerAdapter作为ViewPager的适配器和一个小接口,它描述了无限视图寻呼机应该如何工作。 它背后的想法是你可以滚动到右边,直到你到达ViewPager 。 如果您可以从API调用加载更多结果,则会显示进度页面,直到结果出现。 一切都很好,直到这里,现在问题来了。 如果在这个加载过程中,我旋转屏幕(这不会影响API调用,这基本上是一个AsyncTask ),当调用返回时,应用程序崩溃给我这个exception: E/AndroidRuntime(13471): java.lang.IllegalStateException: Fragment ProgressFragment{42b08548} is not currently in the FragmentManager E/AndroidRuntime(13471): at android.support.v4.app.FragmentManagerImpl.saveFragmentInstanceState(FragmentManager.java:573) E/AndroidRuntime(13471): at android.support.v4.app.FragmentStatePagerAdapter.destroyItem(FragmentStatePagerAdapter.java:136) E/AndroidRuntime(13471): at mypackage.OutterFragment$PagedSingleDataAdapter.destroyItem(OutterFragment.java:609) 在库的代码中挖掘了一下之后,在这种情况下,片段的mIndex数据字段似乎小于0 ,这就引发了exception。 以下是寻呼机适配器的代码: static class PagedSingleDataAdapter extends FragmentStatePagerAdapter implements IEndlessPagerAdapter { private WeakReference fragment; private List data; private SparseArray<WeakReference> currentFragments = new SparseArray<WeakReference>(); private ProgressFragment progressElement; private […]

android:如何从Android Support Lib版本4向PagerTabStrip添加图标/ drawable?

android:如何从Android Support Lib版本4向PagerTabStrip添加图标/ drawable? 对于知道PagerTabStrip的人来说,这是一个非常具体的问题,我无法在任何地方find足够的例子,它是新的(The PagerTabStrip)所以我找不到足够的信息。

如何禁用ViewPager从一个方向滑动

我想允许用户仅从右到左在ViewPager滑动。 因此,一旦他通过一个页面,他就无法回到它。 如何才能做到这一点? 我试过这个解决方案: public class CustomViewPager extends ViewPager { float lastX = 0; boolean lockScroll = false; public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); } public CustomViewPager(Context context) { super(context); } @Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: lastX = ev.getX(); lockScroll = false; return super.onTouchEvent(ev); case MotionEvent.ACTION_MOVE: if […]

如何在Android ViewPager中更改当前选项卡的荧光笔颜色?

这是我在ViewPager布局。 我想更改文本下方当前标签荧光笔的颜色。 实际上它显示为黑色。 但我不知道它是否是默认的颜色。 而且我还有一个疑问。 如果我使用PagerTitleStrip此选项卡不会出现荧光笔。 有没有办法用titletrip带来它? 这是我的布局:

Android PagerAdapter,获取当前位置

我想得到我的PagerAdapter的可见视图的当前位置 我没有看到像getPosition()这样的明显函数,我想要一个。 我想在那个位置向它的arraylist添加一个对象,但我需要先知道它

没有样式ViewPagerIndicator与SherlockActionBar结合使用

我正在尝试使用SherlockActionBar实现ViewPagerIndicator。 它的工作原理:我可以滑动碎片,但风格不起作用! 它看起来像这样: 相关主题: https : //github.com/JakeWharton/Android-ViewPagerIndicator/issues/66 我知道出了什么问题:在VPI的示例中,页面的样式在AndroidManifest.xml中设置(例如) 但是当我将android:theme元素添加到我自己的Manifest.xml中时,我得到以下exception: 03-16 11:06:24.400: E/AndroidRuntime(483): Caused by: java.lang.IllegalStateException: You must use Theme.Sherlock, Theme.Sherlock.Light, Theme.Sherlock.Light.DarkActionBar, or a derivative. 我还尝试将所有样式信息复制到styles.xml,但这也不起作用。 你能告诉我如何设置VPI的风格吗? 谢谢! 编辑:现在我已经添加了 到我的Manifest.xml 以及styles.xml中的以下样式 @style/Widget.Styled.ActionBar @style/Widget.Styled.ActionBar @style/Widget.TitlePageIndicator @style/Widget.TabPageIndicator @style/Widget.TabPageIndicator.Text 结果:我没有得到任何exception,看到样式,但我现在看不到任何碎片:( 活动代码可以在这里find: http : //pastebin.com/hsNgxFDZ当前页面的风格截图:

如何使用页面滑动视图创建Android选项卡式样式

我想要一个像这样的标签的例子 我搜索了但是得到了这个。 viewpageindicator 我无法使用此来源。 有人能告诉我另一个带滑动选项的标签示例。 我认为viewpageindicator与google play标签不同。 因为当我在谷歌播放页面滚动时,标签下面的行在滚动时移动,但在viewpageindicator中它不是。 谢谢

在FragmentTransaction.replace()后跟后退按钮后,不会重新创建ViewPager片段

我正在尝试实现保存和恢复状态,但是在使用PreferenceFragment替换主Fragment然后按下后退按钮时遇到问题。 我的主要Fragment包含一个带有FragmentPagerAdapter的ViewPager ,其中有3个Fragments可以ViewPager 。 在点击后退按钮后,没有调用我的3 Fragment的Fragment.onCreateView()回调。 我已经尝试了所有我在这里遇到的解决方案,但是我无法解决这个问题。 另一个可能需要注意的重要事项是,我的3个ViewPager Fragment的数据存储在单独的类中,这些类是实例化的,可通过Activity访问。 3 Fragment都包含RecyclerView用于列出大量数据。 这样做是为了清洁,但也是为了使这些数据在Activity持续存在。 这可能不是问题,因为它在启动应用程序时工作正常,但也因为主要问题是我的Fragments没有重新创建。 意外行为: 在应用程序创建时,一切正常,但是当我用另一个替换我的主Fragment (包含带有FragmentPagerAdapter的ViewPager )然后按下后退按钮时,不会重新创建ViewPager中的Fragment 。 我的主要Fragment的onCreateView() 被调用。 问题: 我错过了什么? 是否还应该创建一些其他回调? 我应该在哪里以及如何重新创建Fragments ? 我试过了什么: 更改了正在使用的FragmentAdapter ,但我应该使用getSupportFragmentManager()就像这里的解决方案一样。 编辑:使用错误的FragmentManager实际上是我的麻烦的来源。 请参阅下面的答案。 将@Override public int getItemPosition(Object object) {return POSITION_NONE;}到FragmentPagerAdapter ,如此处所示 。 根据我的理解,从FragmentPagerAdapter更改为FragmentPagerAdapter ,这在这里无关紧要。 FragmentStatePagerAdapter的内部实际上保留了Fragments ,但它们不会重新渲染。 在调用onCreateView()时,使用FragmentTransaction添加主Fragment并在该Fragment的其他几个回调中,请参阅下面的MMMainFragment 。 各种其他的东西。 我的MainFragment类具有相应的XML布局 public class MMMainFragment extends Fragment { private MMViewPager […]

在ViewPager中水平滚动webview

我把一个WebView加载到ViewPager中的图像。 当我尝试水平滚动图像时,我移动到下一个视图而不是滚动图像。 是否可以在移动到下一个视图之前滚动到图像的末尾? @Override public Object instantiateItem(View view, int i) { WebView webview = new WebView(view.getContext()); webview.setHorizontalScrollBarEnabled(true); webview.loadUrl(“http://img.androidcookie.com/android/image.gif”); ((ViewPager) view).addView(webview, 0); return webview; }

使用Espresso测试ViewPager。 如何对项目的按钮执行操作?

我有一个ViewPager项目只包含一张图片和一个按钮。 我无法与项目(页面)的UI成功交互,因为除了显示的图片之外,没有什么可以区分(从UI的角度来看) ViewPager所有项目。 我试图只选择一个有位置的项目: onData(is(instanceOf(ItemClass.class))) .atPosition(0) .onChildView(withId(R.id.button)) .perform(click()); 造成: NoMatchingViewException:层次结构中找不到匹配的视图:可从类中分配:class android.widget.AdapterView 如何使用Espresso访问和测试ViewPager项目?