Articles of android viewpager

Android应用程序在使用Fragments和ViewPager一段时间后崩溃

当我尝试恢复我的碎片时,我的android应用崩溃了。 我没有添加任何自定义variables到我试图还原的捆绑包,这都是默认的。 我正在使用Fragments和ViewPager。 看我下面的代码片段: public static class MyAdapter extends FragmentStatePagerAdapter { public MyAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return NUM_ITEMS; } public int getCurrentItemPosition(Fragment fragment){ return getItemPosition(fragment); } @Override public Fragment getItem(int position) { return ContentFragment.newInstance(position); } } public class MyActivity extends FragmentActivity { static final int NUM_ITEMS = 100000; public […]

在Android 3.0+中使用android.app.Fragment和ViewPager

我正在开发android的应用程序:minSdkVersion =“11”。 据我所知,ViewPager是在兼容库中实现的。 我已经成功通过添加android-support-v4.jar库使其在我的应用程序中工作,但现在我不得不使用 android.support.v4.app.FragmentActivity 因为我需要getSupportFragmentManager()为FragmentPagerAdapter,而不是新的android.app.Activity的getFragmentManager()。 另外我需要使用 android.support.v4.app.Fragment 代替 android.app.Fragment 它虽然工作,但我绝对不喜欢这种方法。 它破坏了应用程序的devise,我不想在我的API Level 11项目中有兼容性库。 在Honeycomb +应用程序中是否还有其他更多本地方式使用ViewPager?

Android背景图像减慢应用程序

我正在使用viewpager在我的应用程序中的片段之间滑动。 我在XML中定义背景,所以 android:background="@drawable/bg_final" 如果我使用简单的背景颜色,我的应用程序工作非常stream畅。 如果我用这个背景图片,fps减less,我的应用程序变得只能通过。 速度不是很慢,只是不那么顺利,但是在较弱的设备上,它可能工作滞后。 这是一个不好的方式来应用背景图像? 整个图像是一个大小为14.7kB的480×800 png。 可能是什么问题? (这些片段的背景是透明的,viewpager是在一个main.xml文件中,它有这个图片的背景)

使用viewPager将地图V2与

我目前正在为Android 4.3开发。 背景: 我使用pageViewer在三个不同的片段之间滚动。 我的第二个片段(标签2)具有SupportMapFragment和其他内容的XML。 如下所示 : 我的问题http://sofzh.miximages.com/android/vrhg1e06x977rkm1vhmd.jpg 我的尝试: 在search网页时,我注意到对于SupportMapFragment,我需要FragmentActivity,它不适用于FragmentPagerAdapter。 我需要用户有能力控制地图,并控制片段中的其余内容。 我的问题: 在片段中包含更多内容的情况下,如何将SupportMapFragment与viewPager一起使用? 更多关于我的代码:在FragmentPagerAdapter里面的getItem中,我返回Singleton Fragments(每个Fragment都有一个类),因此我无法通过Internetfind任何解决scheme,因为我的类无法扩展SupportMapFragment,因为它有更多的数据。

一次扫一个项目Recyclerview

我试图添加滚动侦听器回收视图,并作出了一些逻辑,但我无法一次刷一个项目。 我在互联网上做了一些search,但我有一些第三方库,有自定义回收视图。 我们可以在回收者视图中一次实施一个项目吗? 如果是的请告诉如何? 一个项目像这个图像一次滑动。

当调用setAdapter时,ViewPager并不总是刷新,FragmentStatePagerAdapter

首先,我使用FragmentStatePagerAdapter来提供一个ViewPager的片段来显示。 当应用程序处于运行状态(即在onResume() )时,在ViewPager上调用setAdapter将始终工作,并使ViewPager刷新,调用适配器中的getItem(int position)方法。 然而,在方向改变之后,如果我在我的活动的onCreate(Bundle savedInstance)方法中调用了setAdapter,则不调用getItem(int position)方法,并重用旧的片段。 我在想也许FragmentManager正在做一些我不明白的事情? 片段pipe理器是唯一不会在方向更改期间被破坏的东西。 谢谢

getChildFragmentManager()方法未定义

我有一个SherlockFragmentActivity,这个Activity有一个SectionsPagerAdapter和一个ViewPager。 当我用getChildFragmentManager()方法调用SectionsPagerAdapter的构造函数时,它向我显示了这个错误消息: 方法getChildFragmentManager()对于ViewPagerActivitytypes是未定义的 这是我的代码: public class ViewPagerActivity extends SherlockFragmentActivity implements OnPageChangeListener, OnQueryTextListener{ private SectionsPagerAdapter sectionsPagerAdapter; private ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_view_pager); sectionsPagerAdapter = new SectionsPagerAdapter(getChildFragmentManager(), this); viewPager = (ViewPager) findViewById(R.id.pager); viewPager.setAdapter(sectionsPagerAdapter); viewPager.setOnPageChangeListener(this); this.getMovements(); this.getPrizes(); this.getVouchers(); this.createDropdownlist(); } 我正在使用ActionBarSherlock,并在ActionBarSherlock项目中使用“Android工具 – 添加支持库”更新了android-support-v4.jar。 我这样做是因为我需要在片段内有一个ListFragment,我像ViewPager上的一个页面一样。

Viewpager的内容在旋转时丢失

我有一个项目,有一个MainActivity托pipe一个片段,通过一个ViewPager承载另外两个片段。 在第一次启动时看起来很好,但是当我旋转的时候,Viewpager中的两个片段丢失了。 我试着改变getFragmentManager getChildFragmentManager但我会然后得到一个非法的状态exception:不能保留嵌套在其他片段的fragements。 MainActivity.java: import android.app.ActionBar; import android.os.Bundle; import android.view.MenuItem; import android.widget.ArrayAdapter; import android.widget.ListView; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity; public class MainActivity extends SlidingFragmentActivity { @TargetApi(11) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getSupportFragmentManager() .beginTransaction() .replace(R.id.mainContentFrame, new WorkOutsContainerFrag()) .commit(); setBehindContentView(R.layout.menu); ActionBar actionBar = getActionBar(); populate(); SlidingMenu menu = getSlidingMenu(); menu.setMode(SlidingMenu.LEFT); menu.setShadowWidthRes(R.dimen.shadow_width); menu.setShadowDrawable(R.drawable.shadow); menu.setBehindWidthRes(R.dimen.slidingmenu_offset); menu.setFadeDegree(0.35f); […]

将ViewPager活动的值发送到一个按片段分组

我有一个ViewPager活动调用表示幻灯片布局的片段。 我需要的是将活动的值通过捆绑传递给片段。 我怎么能做到这一点? 我尝试在onCreate()传递一个int 2,但不工作,我 活动: @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_screen_slide); Intent intent = new Intent(this,ScreenSlidePageFragment.class); Bundle bundle = new Bundle(); bundle.putInt("SIDE",2); intent.putExtras(bundle); /** * Instantiate a ViewPager and a PagerAdapter */ mPager = (ViewPager)findViewById(R.id.pager); mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager()); mPager.setAdapter(mPagerAdapter); mPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { if(itemOld > arg0){ auxBack–; […]

FragmentStatePagerAdapter内存泄漏(与viewpager嵌套的片段)

我在我的适配器中有一个“内存泄漏”(引号将在后面解释)。 我目前使用嵌套的片段来承载一个viewpager。 我的设置如下: 1.活动(主pipe片段A的空活动) 2.片段A – 使用Fragmentstatepageradapter托pipeviewpager的片段。 每个viewpager页面主持片段B. 3.片段B – 包含imageview的片段。 除非发生configuration更改,否则一切都很好。 监控堆,每发生一次旋转,似乎就会增长100 kb。 手动GCing不释放内存。 我试过的东西: 1.用空片段replace片段B – 同样的问题发生,所以它不是造成问题的imageview。 2.删除片段A和B并旋转活动。 没有发生内存泄漏,所以它不是活动。 3.在任何方向改变之前和旋转约50次之后使用MAT来堆起来。 MAT显示了1个主要的嫌疑犯,这是我的适配器类。 它显示了7MB的观察者留下的堆(非常小的浅堆)如此: array java.util.ArrayList @ 0x42079938 24 7,000,832 .\mObservers android.database.DataSetObservable @ 0x42053508 16 7,000,848 ..\mObservable com.example.main.Adapter@ 0x4205a048 40 7,001,416 为什么我在片段中使用viewpager: 1.通过设置setretaininstance(true),我想保持与viewpager相关的适配器和其他variables的状态。 2.更改configuration后,我不重新创build适配器,而是使用旧的适配器连接到viewpager。 3.如果我不重复使用旧的适配器,而是在更改configuration后创build新的适配器,则内存泄漏消失。 4.closures活动并返回上一个活动后,内存泄漏也消失。 有任何想法吗? 将不胜感激任何帮助。 谢谢,JC