Articles of android viewpager

如何实现PagerAdapter的查看回收机制?

我有一个寻呼机适配器,假设膨胀表示日历的复杂视图。 每年的日历膨胀大约需要350毫秒。 为了提高性能,我想实现存在于回收视图的ListView数组适配器( getView() convertView参数)中的机制。 这是我的当前getView()从适配器。 @Override protected View getView(VerticalViewPager pager, final DateTileGrid currentDataItem, int position) { mInflater = LayoutInflater.from(pager.getContext()); // This is were i would like to understand weather is should use a recycled view or create a new one. View datesGridView = mInflater.inflate(R.layout.fragment_dates_grid_page, pager, false); DateTileGridView datesGrid = (DateTileGridView) datesGridView.findViewById(R.id.datesGridMainGrid); TextView yearTitle = […]

Android:ViewFlipper或ViewPager – 哪个更好?

我陷入了一个阶段。 我总共有20到25个应该像ViewPager一样animation的图像。 现在所有的图像我有onClick()事件,我不知道我应该使用ViewPager或ViewFlipper 。 我可以实现这两个东西,这里没有问题。 我想要什么:我只是想要一个build议,根据我的问题,这将是最好的select, ViewFlipper或ViewPager ? 我所search的内容:我已经通过了StackOverflow的不同链接,即如何提高ViewFlipper / ViewAnimator和ViewFlipper与碎片的性能 ,但我找不到我想要的东西。 我曾与ViewPager有所合作,但当时只有3或4个Fragments我必须pipe理。 如果我用它来解决这个问题,这次我必须pipe理25个Fragments 。 所以我想知道是否有更好的解决scheme。 我也对ViewFliper做了一些研发,知道它只有一个Activity我不得不pipe理,但它没有ViewPager的animation准确性。 请build议我是否应该去ViewPager或ViewFlipper ? 提前致谢。

只有在PagerSlidingTabStrip中单击其选项卡时才能加载片段数据

我在我的项目中使用PagerSlidingTabStrip ,并显示片段中的数据。 它是一个很棒的图书馆,效果很好。 每个片段由一个从Web服务加载的学者讲座组成。 访问Web服务的代码位于Fragment的onCreateView方法中。 目前所有片段的数据在被添加到ViewPager的同时被加载。 我想知道是否有任何方式加载碎片的数据只有当用户点击/滑动到特定的选项卡。 并非一次一切。 目前的代码是非常标准的,我从提供的例子[android解决scheme]中获得帮助。 1 寻呼机适配器如下: public class ScholarDetailPagerAdapter extends FragmentPagerAdapter { private final String[] TITLES = { "Scholar Info", "Lectures"}; Scholar _scholar; public ScholarDetailPagerAdapter(FragmentManager fm, Scholar scholar) { super(fm); _scholar = scholar; } @Override public CharSequence getPageTitle(int position) { return TITLES[position]; } @Override public Fragment getItem(int arg0) { if(arg0 […]

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