Articles of android viewpager

ViewPager禁用滑动到某个方向

我想禁用滑动,但仅限于右侧。 我在这个答案find了一个有效的解决方案 不幸的是,这会复制整个ViewPager源以实现目标。 是否有任何方法只是inheritance现有的类而不是重复?

ViewPager上的左右箭头指示器

我想在我的ViewPager上显示左右箭头,表示滑动。 我在ViewPager元素上添加了两个ImageButton,但这些区域阻止了ViewPager触发“滑动”。 我也希望按下这些箭头来触发片段相应地改变。 简而言之:ImageButtons不应该干扰滑动,但它们应该注册按下。 我怎样才能做到这一点? 谢谢!

如何使用左右滑动更改活动

如何使用左右滑动更改活动? 我没有在任何地方find手册。 例:

如何在2个ViewPagers之间产生视差效果?

背景 请考虑以下情形: 有两个viewPagers,每个都有不同的宽度和高度,但两者都有完全相同的页数。 拖动一个应该拖动另一个,所以效果就像一个“视差”效果。 与#2相同,但对于另一个viewPager。 在浏览器之间还有一个自动切换机制,因此每2秒它将自动切换到下一页(如果在最后一页,则切换回第一页)。 问题 我认为我有一些function,但它有一些问题: 这只是简单的XML。 这里没什么特别的 我使用了’OnPageChangeListener’,在’onPageScrolled’中,我使用了假拖动。 问题是,如果用户的拖动停在页面中间附近(因此激活了viewPager左/右自动滚动),假拖动失去了同步,并且可能发生奇怪的事情:页面错误甚至停留在页面之间。 .. 目前,我没有通过拖动用户来处理其他viewPager,但它也可能是一个问题。 当我成功解决#2(或#3)时,这可能是一个问题。 现在,我正在使用一个使用runnable的处理程序并在其中调用此命令: mViewPager.setCurrentItem((mViewPager.getCurrentItem() + 1) % mViewPager.getAdapter().getCount(), true); 我试过的 我已经尝试过这篇文章 ,但是效果不好,因为当用户拖动在完成切换到另一个页面之前停止时会出现同样的问题。 只有类似的解决方案可以使用单个ViewPager( 此处 ),但我需要使用2个ViewPagers,每个都会影响另一个。 所以我自己尝试过:假设一个viewPager是“viewPager”,另一个(应该跟随“viewPager”)是“viewPager2”,这就是我所做的: viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { int lastPositionOffsetPixels=Integer.MIN_VALUE; @Override public void onPageScrolled(final int position, final float positionOffset, final int positionOffsetPixels) { if (!viewPager2.isFakeDragging()) viewPager2.beginFakeDrag(); if(lastPositionOffsetPixels==Integer.MIN_VALUE) { lastPositionOffsetPixels=positionOffsetPixels; return; } […]

在Viewpager中滚动Webview

我在ViewPager有一个WebView 。 并且ViewPager似乎消耗了所有水平滚动,因此我无法在WebView滚动(垂直工作)。 如何实现WebView优先使用水平滚动?

如何在viewPager页面之间自动切换

我有一个Android应用程序,它使用带有两个页面的ViewPager当活动首次显示时,我想依次向用户呈现每个页面,以便他们知道他们可以在两个视图之间滑动。 我没有find任何描述如何执行此操作的文档。 我发现PageTransformations听起来很有希望,但用户必须先刷卡。 一旦ViewPager中的第一页显示,我需要两页自动滚动。 怎样才能达到预期的效果?

使用ViewPager +放大ImageViews的图像库

我想要实施什么? 使用ViewPager的图库。 我之所以选择这个选项是因为图像之间的平滑过渡(我使用的是ImageView),它很好并且很容易实现。 我的问题到底是什么? 我已经能够实现所有这些, 但缩放function不起作用。 我可以在LogCat中看到它是如何打印的ZOOM (代码在post的末尾),但图像没有放大。 关于以下代码的几点说明: ImageViewHelperURL.setUrlDrawable((ImageView) img, url, R.drawable.no_image); 我正在使用UrlImageViewHelper从Web上异步下载图像。 api.getListUrls()这是一个ArrayList,我有图片url。 我也试过使用R.drawable的ImageView而不是下载图像 import android.content.Context; import android.content.Intent; import android.graphics.Matrix; import android.graphics.PointF; import android.os.Bundle; import android.support.v4.app.ActionBar; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.Menu; import android.support.v4.view.MenuItem; import android.support.v4.view.ViewPager; import android.util.FloatMath; import android.util.Log; import android.view.LayoutInflater; import android.view.MenuInflater; import android.view.MotionEvent; import android.view.View; import […]

Android:如何在单个xml文件中实现viewpager和视图

更新:我可以使用以下布局在Viewpager中实现3个文本视图: 我想为这3个视图实现ViewPager。 我希望在单个xml文件中有viewpager和那3个视图。 每个页面都包含每个文本视图。 我已经看到了一些示例,但每个页面都是使用单独的xml布局文件实现的。 如何在单个xml文件中为这3个视图实现viewpager。 如果可能,请提供示例代码或示例。

AsyncTask在ViewPager的每个页面上运行

我在android开发教程中有3个Tabs 现在我想要做的很简单,我在每个页面上使用Fragments。 我想在每个页面上显示rss feed中的不同内容。 问题是,当我转到下一个选项卡时,它运行前一个片段的AsyncTask(在onCreateView中)。 所以从第1页开始,它可以很好地加载内容。 然后当你去第2页时再次运行第1页碎片的onCreateView。 并且显然给出了NullException。 关键是它不应该在第2页运行Page 1的AsyncTask。 我不认为有任何示例代码需要告诉我你需要看哪个部分。 然后我会编辑我的问题。 ListFragment中的AsyncTask: public class MyAsyncTask extends AsyncTask<List, Void, List> { // List of messages of the rss feed private List messages; private volatile boolean running = true; @SuppressWarnings(“unused”) private WeakReference fragmentWeakRef; private MyAsyncTask(NieuwsSectionFragment fragment) { this.fragmentWeakRef = new WeakReference(fragment); } @Override protected void onPreExecute() […]

修复圆形ViewPager的animation

目标 构建一个循环ViewPager。 第一个元素允许您达到峰值到最后一个元素并向其滑动,反之亦然。 您应该能够永远向任一方向滑动。 现在这已经完成了,但这些问题对我的实现不起作用。 以下是一些供参考: 如何创建循环viewpager? ViewPager作为循环队列/包装 https://github.com/antonyt/InfiniteViewPager 我是如何尝试解决问题的 我们将使用大小为7的数组作为示例。 要素如下: [0][1][2][3][4][5][6] 当你在元素0时,ViewPagers不允许你向左滑动! 多么可怕:(。为了解决这个问题,我在正面和结尾添加了1个元素。 [0][1][2][3][4][5][6] // Original [0][1][2][3][4][5][6][7][8] // New mapping 当ViewPageAdapter请求(instantiateItem())元素0时,我们返回元素7.当ViewPageAdapter请求元素8时,我们返回元素1。 同样在ViewPager的OnPageChangeListener中,当使用0调用onPageSelected时,我们使用setCurrentItem(7),当使用8调用onPageSelected时,我们使用setCurrentItem(1)。 这很有效。 问题 当你从1向左滑动到0时,我们设置了CurrentItem(7),它将一直向右移动6个全屏幕。 这不会给出圆形ViewPager的外观,它会让用户在滑动动作时向相反方向的最后一个元素冲去! 这非常非常刺耳。 我是如何试图解决这个问题的 我的第一个倾向是关闭平滑(即所有)animation。 它有点好,但是当你从最后一个元素移动到第一个元素时,它现在变得不稳定,反之亦然。 然后我制作了自己的Scroller。 http://developer.android.com/reference/android/widget/Scroller.html 我发现在元素之间移动时始终有1次调用startScroll(), 除非我从1移动到7和7移动到1。 第一个调用是方向和数量的正确animation。 第二个调用是将所有内容向右移动多个页面的animation。 这是事情变得非常棘手的地方。 我认为解决方案是跳过第二个animation。 所以我做了。 会发生什么是从1到7的平滑animation,有0个打嗝。 完善! 但是,如果你滑动,甚至点击屏幕,你会突然(没有animation)在元素6! 如果你从7滑动到1,你实际上是在元素2.没有调用setCurrentItem(2)或甚至调用OnPageChangeListener,表明你在任何时间点到达2。 但是你实际上并不是第2元,这有点好。 您仍处于元素1,但将显示元素2的视图。 然后当你向左滑动时,你会转到元素1.即使你已经真的在元素1上了……一些代码如何帮助清理: animation被打破,但没有奇怪的副作用 @Override public void startScroll(int startX, int […]