Articles of android viewpager

如何解决viewpager:指定的孩子已经有一个父母。 您必须先调用子对象的父对象的removeView()

在我的项目中,我使用了三个名为History , Main , Map选项卡。 主要活动包括计时器,秒表等。 地图显示谷歌地图。 并进入历史现在我只使用简单的Textview。 Viewpagerstream向: 历史 – 主要 – 地图 我将Main设置为当前项目(Bydefault Main标签显示)。现在,当我从Main > Map and Map > Main中滑动时,它的工作非常完美。 但从主要 > 历史刷卡没有错误,但返回从历史logging 主 ( 历史 > 主 )日食给我错误如: E/AndroidRuntime( 533): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 而FYI我正在使用intent into Map Activity 。请检查下面的code.Please让我知道如何能解决我的问题。 […]

ViewPager中的ScrollView自动滚动到中间

我有一个ViewPager包含同一个片段的几个实例,这个片段包含一篇文章。 文章视图层次非常简单,一个标题,一个横幅图像,一个小标题和一个主体; 除了标题之外的所有内容都包含在滚动视图中。 问题是 ,当你滑动到一个新的页面,片段与顶部的视图呈现,然后立即滚动到容器的中间。 (事实上​​,它滚动到TextView的开头,id: article_content ) 我已经在问题的底部发布了布局。 现在,ViewPager设置了一个FragmentStatePagerAdapter的简单实现,下面是代码: class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter { Bundle args; int count; public ScreenSlidePagerAdapter(FragmentManager fm) { super(fm); this.count = 8; } @Override public Fragment getItem(int position) { ArticleFragment mPrimaryFragment = new ArticleFragment(); args = new Bundle(); args.putString(ArticleFragment.KEY_ARTICLE_URL, mCurArticleLink); mPrimaryFragment.setArguments(args); return mPrimaryFragment; } @Override public int getCount() { return […]

片段作为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(); […]

在第一页上select的ViewPager onPageSelected

所以看起来在使用ViewPager时,onPageSelected监听器不会像第一页那样被调用。 我有一些逻辑,为当前选定的页面填充一些更昂贵的UI元素,这在页面更改时有效,但it doesn't work for the first page. 如果我在侦听器之后设置了当前项目,callback会被触发,但是视图尚未初始化,所以我无法操作它: // Inside PagerAdapter.instantiateItem ViewHolder vh = new ViewHolder(); cursor.moveToPosition(position); vh.view = adapter.newView(context, cursor, null); // Set position as tag so we can retrieve it with findViewByTag vh.view.setTag(position); ((ViewPager) collection).addView(vh.view,0); return vh; // Inside MyActivity.onCreate pagerAdapter = new SingleMessagePagerAdapter(this, cursor); pager = (ViewPager)findViewById(R.id.message_pager); pager.setAdapter(pagerAdapter); pager.setOnPageSelectedListener(this); pager.setCurrentItem(selectedItem); // […]

Android:ViewPager卡在视图之间

我有一个在碎片之间滑动的ViewPager。 我正在使用FragmentStatePagerAdapter将碎片提供给ViewPager。 如果用户以正常速度向左滑动,然后迅速向右滑动,则可以使ViewPager进入奇怪状态,显示多个碎片。 例如,如果用户在片段A上,然后以正常速度向左滑动到片段B,然后快速向右滑动以返回片段A,然后在屏幕上显示片段A和B. 任何人有什么想法,为什么这是发生或防止它的一个好办法? 以下是它的样子: 这是我在XML中的ViewPager定义: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.company.views.CustomActionBar android:id="@+id/customActionBar" android:layout_width="match_parent" android:layout_height="@dimen/height_actionbar" android:layout_alignParentTop="true"/> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/customActionBar"/> 另外,我logging了我的onPageChangeListener()的输出,注意到当ViewPager卡在视图之间时,报告一个positionOffset为0.这是ViewPager的值,当它从STATE_DRAGGING过渡到STATE_SETTLING到STATE_IDLE时,奇怪的状态: 状态= 0 prevState:2位置:1 positionOffset:0.0 状态= 1 prevState:0位置:1 positionOffset:0.0 state = 2 prevState:1 position:1 positionOffset:0.4069444 状态= 0 prevState:2位置:2 positionOffset:0.0 所以看起来好像ViewPager是把错误的位置报告给我的。 完整的示例代码活动和适配器: public class ActivityBagelProfileViewer extends CustomAbstractFragmentActivity implements CustomActionBarContract, ListenerProgress, ListenerSync { public static final […]

允许在一个片段中旋转/横向

我的应用程序有一个活动与FragmentPagerAdapter与四个片段(使用ViewPagerIndicator库)。 其中一个片段devise了单独的纵向和横向布局,其他三个片段不需要固定在纵向上。 我的想法是在清单中设置android:configChanges="orientation" ,并在所有片段的onResume()中调用getActivity().setRequestedScreenOrientation() ,在其中的三个片段中locking到SCREEN_ORIENTATION_PORTRAIT ,而在SCREEN_ORIENTATION_UNSPECIFIED需要允许旋转,但是这不起作用。 该应用程序保持肖像模式。 有没有办法做到这一点? 实际活动实际上并不是必要的,如果无论如何不允许片段改变方向而没有进行活动,但是我没有发现任何提及这一点的可能性。 如果活动旋转也是同样好,因为在横向方向上标签栏将被隐藏。

Android使用viewPager vs使用tabhost

在我的Android应用程序,我不得不使用一个标签布局 ,我想从以下scheme中select一个。 他们是 使用viewPager 使用tab host viewPager比tabhost什么优点。 哪一个更好。 而我的目标是Android 4.2 。 谢谢!

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

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

带有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“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 […]