Articles of android viewpager

TabLayout与viewpager不平滑滚动

编辑 我已经按照这些教程来解决这个问题。 http://www.truiton.com/2015/06/android-tabs-example-fragments-viewpager/ https://guides.codepath.com/android/google-play-style-tabs-using-tablayout http:/ /www.voidynullness.net/blog/2015/08/16/android-tablayout-design-support-library-tutorial/ 但是,在尝试几种解决scheme之后,这个问题依然存在。 这里是演示我面临的问题。自从我陷入这个问题以来,我已经有几个星期了。 链接演示。 我用来testing的设备是Nexus 4和Nexus 5。 带有ViewPager不能平滑滚动。 我需要滑动两次才能在下次点击时移动。 我浏览过网页,但找不到任何解决scheme。 我正在使用最新的支持devise库。 这是gradle文件 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.softoven.ultron" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: […]

如何正确处理与ViewPager和嵌套片段的屏幕旋转?

我有这个活动,它包含一个片段。 这个片段布局由一个带有几个片段的视图分页器(实际上是两个)组成。 当view pager被创build时,它的适配器被创build, getItem被调用并且我的子片段被创build。 大。 现在,当我旋转屏幕,框架处理重新创build片段,适配器是在我的onCreate从主要片段再次创build,但getItem永远不会被调用 ,所以我的适配器持有错误的引用(实际上是空值),而不是两个片段。 我发现的是,片段pipe理器(也就是子片段pipe理器)包含一个名为mActive的片段数组,这当然是不能从代码访问的。 但是有这个getFragment方法: @Override public Fragment getFragment(Bundle bundle, String key) { int index = bundle.getInt(key, -1); if (index == -1) { return null; } if (index >= mActive.size()) { throwException(new IllegalStateException("Fragement no longer exists for key " + key + ": index " + index)); } Fragment f […]

Android ViewPager与前一页和下一页可见?

我目前正在build立一个水平的video画廊。 我只想做一个像这样的事情,只有一个video中心和前一个和下一个video的一部分: 我第一次select了一个画廊,但它的局限性让我寻找别的东西。 我想显示一个页面指标,这是很难实现使用画廊。 第二个select是从Android兼容性库中查看ViewPager 。 我find了一个方法来实现页面指​​标 。 但现在,如何部分显示左右页面?

Android ViewPager的onPageScrollStateChanged永远不会被调用

我已经扩展了ViewPager类,并实现onPageChangeListener。 我将这个ViewPager与SherlockFragment中的CirclePageIndicator结合使用。 ViewPager包含ImageViews和TextViews,没有什么奇特的。 每次页面被改变时,我都需要在ViewPager下执行一些操作。 所以,我想我需要使用onPageScrollStateChanged并validation状态是IDLE,或什么的。 问题是,从3实现的方法(onPageScrollStateChanged,onPageSelected和onPageScrolled),只有onPageScrolled被调用(我检查每个方法中的日志消息)。 这是为什么 ? 下面的代码。 public class UninterceptableViewPager extends ViewPager implements OnPageChangeListener{ private ArrayList<TwoRowListViewAdapter> mAdaptersList = null; private ListView mListView = null; private ProgressBar mProgressBar = null; public UninterceptableViewPager(Context context, AttributeSet attrs) { super(context, attrs); } public boolean onInterceptTouchEvent(MotionEvent event) { getParent().requestDisallowInterceptTouchEvent(true); return super.onInterceptTouchEvent(event); } public void setAdaptersList(ArrayList<TwoRowListViewAdapter> adaptersList) { mAdaptersList […]

在FragmentTransaction.replace()后面跟着后退button之后,ViewPager Fragments不会被重新创build

我正在尝试实现保存和恢复状态,但是当用PreferenceFragmentreplace主Fragment然后点击后退button时,我遇到了问题。 我的主要Fragment由一个ViewPager和一个带有3个Fragments Fragment组成。 点击后退button后,我的3 Fragment的Fragment.onCreateView()callback将不会被调用。 我尝试了所有的解决scheme,但是我一直没能解决这个问题。 另一个可能很重要的要注意的是,我的3 ViewPager Fragment的数据存储在单独的类中,这些类是通过Activity实例化和访问的。 3 Fragment都包含RecyclerView列出相当数量的数据。 这是为了清洁,但也使这些数据坚持在Activity 。 这可能不是一个问题,因为它启动应用程序时工作正常,但也因为主要问题是我的Fragments不重新创build。 意外的行为: 在创build应用程序时,一切正常,但是当我用另一个replace我的主要Fragment (包含ViewPager与FragmentPagerAdapter ),然后按下后退button, ViewPager中的Fragment s不会重新创build。 我的主要Fragment的onCreateView() 被调用。 问题: 我错过了什么? 是否还有其他一些应该创build的callback? 在哪里以及如何重buildFragments ? 我试过了什么: 改变了FragmentAdapter在使用,但我真的应该使用getSupportFragmentManager()就像这里的解决scheme。 编辑:使用错误的FragmentManager实际上是我的烦恼的来源。 看到我的答案在下面。 如此处所示,将@Override public int getItemPosition(Object object) {return POSITION_NONE;}到FragmentPagerAdapter 。 据我所知,从FragmentPagerAdapter更改为FragmentPagerAdapter ,这在这里应该不重要。 FragmentStatePagerAdapter的内部实际上保留了Fragments ,但是它们不会被重新渲染。 当它的onCreateView()被调用的时候,使用FragmentTransaction把这个主Fragment添加回来,在这个Fragment的其他几个callback中,请看下面的MMMainFragment 。 各种其他的东西。 我的MainFragment类与相应的XML布局 public class MMMainFragment extends Fragment { private MMViewPager […]

Android ViewPager上一个/下一个button

好的,我正在开发一个利用ViewPager来显示页面的Android应用程序。 在每个页面中,我有一组button用于页面之间的导航(除了在页面之间滑动)之外。 这些button用于“首页”,“上一页”,“下一页”和“最后一页”。 我无法弄清楚如何做的是devise一个机制,使button点击页面更改。 有人有主意吗? ETA:为了更好地解释设置,button在每个页面的布局中被声明,并且在PagerAdapter中被其余的布局充满。 我的问题是,我无法从PagerAdapter中引用ViewPager。 或者至less,我想不出办法做到这一点。

我如何实现在Android上的标签之间滑动?

Android 4.0中关键标签的主要devisebuild议之一就是在适当的时候允许在它们之间滑动 。 这种行为使用户能够跨所选标签的内容水平滑动以导航到相邻标签,而不需要直接与标签本身交互。 这怎么能被执行?

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

我想要一个像这样的标签的例子 我搜查,但刚刚得到这个。 viewpageindicator 我无法使用这个来源。 有人可以告诉我另一个滑动选项标签的例子。 我认为viewpageindicator是不一样的谷歌播放标签。 因为当我滚动谷歌播放页面下面的标签线移动,而在滚动,但在viewpageindicator它不是。 谢谢

确定ViewPager更改页面的时间

我在ViewPager中有三个页面(碎片),但是我只想显示其中两个页面的菜单项。 在以前的答案给出的代码似乎并不工作: @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser == true) { } else if (isVisibleToUser == false) { } } Eclipse说@Override是不需要的,超级不能设置。 它从来没有被系统所调用,即使是我将如何确定此刻显示哪个页面? 我可以在这里得到一些帮助吗?

解组时的ClassNotFoundException:android.support.v4.view.ViewPager $ SavedState

我在Android崩溃报告中看到以下错误: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: android.support.v4.view.ViewPager$SavedState at android.os.Parcel.readParcelable(Parcel.java:1971) at android.os.Parcel.readValue(Parcel.java:1859) at android.os.Parcel.readSparseArrayInternal(Parcel.java:2128) at android.os.Parcel.readSparseArray(Parcel.java:1581) at android.os.Parcel.readValue(Parcel.java:1916) at android.os.Parcel.readMapInternal(Parcel.java:2099) at android.os.Bundle.unparcel(Bundle.java:223) at android.os.Bundle.getSparseParcelableArray(Bundle.java:1225) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:806) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1083) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:635) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1431) at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431) at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:160) at android.support.v4.view.ViewPager.populate(ViewPager.java:895) at android.support.v4.view.ViewPager.populate(ViewPager.java:772) at android.support.v4.view.ViewPager.completeScroll(ViewPager.java:1539) at android.support.v4.view.ViewPager.computeScroll(ViewPager.java:1422) at android.view.ViewGroup.drawChild(ViewGroup.java:3028) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788) at android.view.ViewGroup.drawChild(ViewGroup.java:3184) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788) at android.view.ViewGroup.drawChild(ViewGroup.java:3184) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788) at […]