Articles of android viewpager

使用viewPager将地图V2与

我目前正在为Android 4.3开发。 背景: 我使用pageViewer在三个不同的片段之间滚动。 我的第二个片段(标签2)具有SupportMapFragment和其他内容的XML。 如下所示 : 我的问题http://img.androidcookie.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

通过buttonClick更改viewpager片段

我试图通过点击一个button来改变viewpager片段。 我有5个片段,每个片段都有自己的XML文件(frag1.xml,frag2.xml等)。 每个片段有5个button应该去viewpager的其他页面。 但问题是如何检查FragmentPageAdapter哪个button被点击,以及如何到达那里? 我会显示我的代码,然后应该清楚我的想法。 把它看作是一个底部有点的主屏幕,我点击某个点,就会进入相应的屏幕。 FragmentPagerAdapter public class MyFragmentPagerAdapter extends FragmentPagerAdapter{ final int PAGE_COUNT = 6; /** Constructor of the class */ public MyFragmentPagerAdapter(FragmentManager fm) { super(fm); } /** This method will be invoked when a page is requested to create */ @Override public Fragment getItem(int arg0) { switch(arg0){ case 0: return new Fragment1(); […]

在android中的滚动视图内设置Viewpager高度

我必须在scrollview中显示一个viewpager(在pager行中图像下方的图像和文本)。 我正在下载图像,文本从网页和显示在传呼机行。 我在srollview中包装了viewpager以支持横向模式。 <com.xxx.myapp.android.ui.CustomScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:fadingEdge="none" android:fillViewport="true" android:gravity="center"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:descendantFocusability="blocksDescendants" android:orientation="vertical" > <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="800dp" android:layout_gravity="top" android:layout_marginTop="10dp" /> </LinearLayout> </com.xxx.myapp.android.ui.CustomScrollView> 这里是CustomScrollView 。 问题是如何根据其子高度来设置视图传呼机高度,这样我就可以滚动屏幕直到视图传呼机项目结束。 如果我将view pager高度设置为wrapcontent,viewpager中就不会显示任何内容。 如果我设置了一些800dp,那么我可以看到寻呼机的项目,但是在屏幕上不需要滚动。 我不希望我的scrollview被滚动到寻呼机的儿童身高之外。 请帮帮我。

如何把viewpager里面的片段在Android?

我有一个活动,我可以在这个活动的framelayout上显示一些片段。 我想把片段组成的片段,而不是一个FragmentActivity。 如何才能做到这一点?