Articles of android viewpager

如何自定义CirclePageIndicator?

我正在使用ViewPager和PagerAdapter来获取Android应用程序中的XML的幻灯片。 我正在使用CirclePageIndicator为页面编号。 如何定制当前页面对应的圆圈的颜色?

android viewpager更改适配器

我正在开发一个横向滚动表的ViewPager的应用程序,有时我需要更改适配器加载一组不同的表。 我试图做到以下几点: mViewPager.setAdapter(new pagerAdapterPushed(getSupportFragmentManager())); mViewPager.getAdapter().notifyDataSetChanged(); indicator.setViewPager(mViewPager); indicator.invalidate(); mViewPager.invalidate(); 但它总是重新加载以前的数据。 难道不能更改ViewPager的适配器吗?

Android如何停止刷新选项卡上的碎片更改

我有以下代码: MainActivity.java package com.erc.library; import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.FragmentTransaction; import android.content.SharedPreferences; import android.content.res.Resources; import android.graphics.Color; import android.os.Bundle; import android.os.Environment; import android.os.StrictMode; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.TextView; import android.widget.Toast; import com.erc.sayeghlibrary.adapter.TabsPagerAdapter; public class MainActivity extends FragmentActivity […]

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

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

修复圆形ViewPager的animation

目标 构build一个循环ViewPager。 第一个元素可以让你顶点到最后一个元素,并滑动到它,反之亦然。 你应该可以永远向任何一个方向滑动。 现在这已经完成了,但这些问题不适用于我的实施。 这里有几个供参考: 如何创build圆形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中,当onPageSelected被调用0时,我们setCurrentItem(7),当它被调用8时,我们setCurrentItem(1)。 这工作。 问题 当您从1到0向左滑动,并设置当前项目(7)时,它将以6个全屏幕一路向右移动。 这并没有给出一个圆形的ViewPager的外观,它给出了用户请求用他们的滑动动作所反向的最后一个元素的外观! 这非常刺耳。 我试图解决这个问题 我的第一个倾向是closures顺利(即全部)animation。 这有点好一点,但是当你从最后一个元素移到第一个元素时,它会变得不稳定,反之亦然。 然后我做了自己的Scroller。 http://developer.android.com/reference/android/widget/Scroller.html 我发现, 除了当我从1移动到7和7移动到1时,在元素之间移动时始终有1次调用startScroll()。 第一个电话是正确的方向和金额的animation​​。 第二个调用是通过多个页面向右移动一切的animation。 这是事情非常棘手的地方。 我认为解决办法是跳过第二个animation。 所以我做了。 会发生什么是一个平稳的animation从1到7,0打嗝。 完善! 但是,如果你滑动,甚至点击屏幕,你在元素6突然(没有animation)! 如果你已经从7秒刷新到1秒,那么你实际上是元素2.没有调用setCurrentItem(2),甚至没有调用OnPageChangeListener,表示你在任何时候到达2。 但是你实际上并不在元素2中,这很好。 你仍然在元素1,但元素2的视图将被显示。 然后,当你向左滑动,你去元素1.即使你真的在元素1 ..如何帮助清除一些代码: animation是破碎的,但没有怪异的副作用 @Override public void startScroll(int startX, […]

AsyncTask在ViewPager的每个页面上运行

我在Android开发教程中有3个选项卡 现在我想要做的事情非常简单,我在每个页面上都使用Fragments。 我想在每个页面上显示来自RSS源的不同内容。 问题是当我去到下一个选项卡它运行前一个片段的AsyncTask(这是在onCreateView)。 所以,你从第一页开始就把内容加载好了。 然后当你去到页面2再次运行页面片段的onCreateView。 显然给了一个NullException。 关键是它不应该在第2页上运行第1页的AsyncTask。 我不认为有任何示例代码需要的话,告诉我你需要看哪个部分。 然后,我将编辑我的问题。 一个ListFragment中的AsyncTask: public class MyAsyncTask extends AsyncTask<List<String>, Void, List<String>> { // List of messages of the rss feed private List<Message> messages; private volatile boolean running = true; @SuppressWarnings("unused") private WeakReference<NieuwsSectionFragment> fragmentWeakRef; private MyAsyncTask(NieuwsSectionFragment fragment) { this.fragmentWeakRef = new WeakReference<NieuwsSectionFragment>(fragment); } @Override protected void onPreExecute() { super.onPreExecute(); […]

在Viewpager中滚动Webview

我在ViewPager有一个WebView 。 而ViewPager似乎消耗所有的水平滚动,所以我不能在WebView (垂直工程)中滚动。 我怎样才能实现WebView优先级消耗水平滚动?

使用ViewPager +的图像库放大ImageViews

我想要实现什么? 使用ViewPager的图像库。 我select这个选项,因为图像之间的平滑过渡(我使用ImageView),这是很好,很容易实现。 我的问题到底是什么? 我已经能够实现所有这些, 但缩放不起作用。 我可以在LogCat中看到它是如何打印的ZOOM (代码是在post的末尾),但图像没有放大。 关于下面的代码只是几个注意事项: ImageViewHelperURL.setUrlDrawable((ImageView) img, url, R.drawable.no_image); 我使用UrlImageViewHelper从网上asynchronous下载图像。 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; […]

精确控制Android Vector Vectoranimation

更新:find解决scheme! 向下滚动我的接受答案! 我想为一个图像的多个元素设置animation,并将animation链接到ViewPage的位置(所以根据当前正在拖动的页面,多个元素正在变形或飞入/飞出)。 那么,有没有办法精确控制animation的当前帧? 例如,让我们假设我有这个集合: <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <objectAnimator android:interpolator="@android:anim/decelerate_interpolator" android:duration="800" android:propertyName="scaleY" android:valueFrom="0" android:valueTo="1" /> <objectAnimator android:interpolator="@android:anim/decelerate_interpolator" android:duration="800" android:propertyName="scaleX" android:valueFrom="0" android:valueTo="1" /> <objectAnimator android:interpolator="@android:anim/decelerate_interpolator" android:duration="800" android:propertyName="rotation" android:valueFrom="0" android:valueTo="360" /> </set> animationvector文件: <animated-vector xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/pre_signup_1" > <target android:name="plus_button" android:animation="@anim/pre_signup_1_plus_container" /> <target android:name="plus" android:animation="@anim/pre_signup_1_plus_sign" /> </animated-vector> 运行animation的Java代码: ImageView mImage1 = (ImageView) findViewById(R.id.image_1); AnimatedVectorDrawableCompat animated = […]

IllegalStateException:无法更改片段的标记是android:switcher现在android:switcher

我的活动使用TabLayout + ViewPager 。 在创build活动时启动3个静态选项卡+静态3个片段。 之后,我的应用程序获取一些远程对象,并在接收到这些远程对象时呈现额外的标签+碎片。 在任何时候,3个最初的标签+片段是第一个,然后是dynamic标签+片段。 崩溃报告通过Crashlytics,我无法复制它。 我的活动代码: @Override protected void onCreate(Bundle savedInstanceState) { boolean isAppRestarting = PrefUtils.getBoolean("app_restarting", false); if (isAppRestarting) { super.onCreate(null); this.savedInstanceState = null; } else { super.onCreate(savedInstanceState); this.savedInstanceState = savedInstanceState; } initSlidingTabs(); fetchSomeData(); // callback onDataFetched() } private void initSlidingTabs() { List<FragmentWithTitle> sdsTabs = new ArrayList<>(); if (savedInstanceState == null) { […]