Articles of android viewpager

片段作为Android中的单例

一般问题我可以定义碎片为单身? 具体问题在我的应用程序中,我有一个“FragmentActivity”与FragmentPager有两个片段, FragmentA和FragmentB 。 我在FragmentA扩展Fragment类中将FragmentA定义为Singletons: private static instance = null; public static FragmentA getInstance() { if (instance == null) { instance = new FragmentA(); } return instance; } private FragmentA() {} 并在我的FragmentPagerAdapter : @Override public Fragment getItem(int position) { switch(position){ Fragment fragment = null; case 0: fragment = FragmentA.getInstance(); break; case 1: fragment = FragmentB.getInstance(); […]

android:如何从Android支持库版本4添加图标/绘图到PagerTabStrip?

android:如何从Android支持库版本4添加图标/绘图到PagerTabStrip? 这是人们意识到PagerTabStrip的非常具体的问题,我无法find足够的任何地方的例子,它是某种新的(PagerTabStrip),所以我找不到足够的信息。

使用getItemPosition(Object对象)在FragmentStatePagerAdapter中重新sorting页面

我相信,当重写getItemPosition(Object object)时,FragmentStatePagerAdapter在重新sorting页面的时候并不正确。 下面是一个简单的例子。 在初始状态下,页面的顺序是{A,B,C}。 在调用toggleState() ,页面的顺序变为{A,C,B}。 通过重写getItemPosition(Object object) ,我们确保当前正在查看的页面(A,B或C)不会改变。 public static class TestPagerAdapter extends FragmentStatePagerAdapter { private boolean mState = true; public TestPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); } @Override public int getCount() { return 3; } private void toggleState() { mState = !mState; notifyDataSetChanged(); } private String getLabel(int position) { switch (position) { case 0: return […]

带有Recyclerview的ViewPager上的NullPointerException

我们的应用程序中有一个ViewPager和一个包含三个片段的FragmentPagerAdapter 。 其中两个片段由每个片段的Recyclerview组成。 第一页(没有ViewPager的片段)正确显示。 但是,当ViewPager尝试预载下一个页面(一个RecyclerView)时,应用程序因为NullPointerException而崩溃,并显示以下日志: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.support.v7.widget.RecyclerView$ViewHolder.shouldIgnore()' on a null object reference at android.support.v7.widget.RecyclerView.findMinMaxChildLayoutPositions(RecyclerView.java:2839) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2626) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3011) at android.view.View.layout(View.java:15684) at android.view.ViewGroup.layout(ViewGroup.java:4981) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1626) at android.view.View.layout(View.java:15684) at android.view.ViewGroup.layout(ViewGroup.java:4981) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) at android.widget.FrameLayout.onLayout(FrameLayout.java:508) at android.view.View.layout(View.java:15684) at android.view.ViewGroup.layout(ViewGroup.java:4981) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15684) at android.view.ViewGroup.layout(ViewGroup.java:4981) at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1000) at […]

ViewPager随着时间的推移碎片被破坏?

我正在使用Android的support.v4包来开发包含多个Fragment的ViewPager。 我想在用户更改页面时隐藏视图。 所以,我实现了一个OnPageChangeListener来监听我的适配器,并在发生页面更改时调用我的Fragment的update()方法。 但是我得到一个NullPointerException ,我不明白为什么。 这里是代码: public class MyActivity extends FragmentActivity implements OnPageChangeListener { private static final int NUM_ITEMS = 2; private ViewPager mPager; private static SpaceAdapter mAdapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_pager); mAdapter = new SpaceAdapter(getSupportFragmentManager()); mPager = (ViewPager) findViewById(R.id.pager); mPager.setAdapter(mAdapter); mPager.setOnPageChangeListener(this); […]

一个包含多个片段的页面的ViewPager“java.lang.IllegalArgumentException:没有findid为”

在我的小型Android应用程序中,我有一个3页的ViewPager ,每个页面包含一个片段,这与FragmentStatePagerAdapter一起工作正常(请参阅前面的问题 )。 现在对于更大的屏幕,我想保留一个ViewPager ,但我希望前两个片段在同一个首页。 为此,我实现了自己的PagerAdapter,这是主要工作,我正在尝试解决的唯一问题是当我旋转屏幕,我得到一个错误: 12-11 16:34:13.526: ERROR/AndroidRuntime(9221): FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.matthieu/com.matthieu.TestActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f030002 (com.matthieu:id/top_fragment) for fragment TestFragment{481a3a98 #0 id=0x7f030002} at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3815) at android.app.ActivityThread.access$2400(ActivityThread.java:125) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2037) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:4627) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871) at […]

在ViewPager中水平滚动webview

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

Android的ViewPager setCurrentItem后onResume不工作

我得到了这个奇怪的问题,ViewPager的setCurrentItem(position,false)完美地工作,然后切换到另一个活动,并且在回到第一个活动后,ViewPager总是在第一个项目上结束。 即使ive添加setCurrentItem到onResume方法它仍然忽略它。 它甚至不会抛出任何exception,当我试图设置项目越界索引。 虽然后来我调用这个方法的时候,点击button“下一步”,它按预期工作。 检查我的代码10次任何可能的调用setCurrentItem(0)或水手,但它根本不存在。

无限ViewPager

这似乎是可能的,但我有点麻烦,搞清楚如何实现可无限页面的ViewPager 。 我的用例是一次显示一个月的日历,但可以通过分页足够多的时间切换到任何月份。 目前我只是extending PagerAdapter ,并添加3个自定义MonthViews像这样: @Override public Object instantiateItem(View collection, int position) { final MonthView mv = new MonthView(HistoryMonthActivity.this); mv.setLayoutParams(new ViewSwitcher.LayoutParams( android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT)); mv.setSelectedTime(mTime); ((DirectionalViewPager) collection).addView(mv, 0); return mv; } 我想每次只在内存中保留3个MonthView ,这样当用户选中Tab时,每个MonthView数据库显示数据的时间就不会有太大的延迟。 所以每次显示一个新的页面,我将需要删除一个MonthView并添加一个MonthView 。 如果任何人有相同的function更好的主意,我很乐意听到它! 我想尝试使用FragmentStatePagerAdapter 。

Android侧边栏喜欢脸谱或火狐

随着新的Facebook应用程序它带有一个隐藏的侧边栏,我很喜欢在我的应用程序中使用类似的东西。 它看起来有点像firefox手机有侧边栏… 你有什么想法除了重新实现ViewPager? 我已经尝试了一个Horizo​​ntalScrollView,但也会导致重新执行它… 除了这两个,我没有看到任何其他的方式…有什么build议? 提前致谢