Articles of android viewpager

一次扫一个项目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。 如何才能做到这一点?

在Eclipse中包含Android-DirectionalViewPager .jar错误

我正试图在我的应用程序中实施垂直滑动。 (就像使用ViewPager滑动,但垂直)。 我发现了Jake Whartons库Android-DirectionalViewPager 。 它是一个独立的.jar文件,除了兼容性库之外,还应该包含这个文件。 我把这个文件包含在我的项目中。 现在在“引用的库”之下,就像兼容性库一样。 但问题是,我甚至无法得到与图书馆一起工作的例子。 debugging器在线停止 setContentView(R.layout.main); 与'找不到来源' LogCat引发此错误:“05-23 14:43:13.583:E / dalvikvm(329):无法find类”com.directionalviewpager.DirectionalViewPager“,从方法own.vvp.MainActivity.onCreate引用” 有人已经使用过这个库吗? 我需要一些帮助 :) 这里是我的代码: 清单: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="own.vvp" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" […]