Articles of android viewpager

ViewPager,其中一个页面包含多个片段“java.lang.IllegalArgumentException:找不到id的视图”

在我的小型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) […]

Android – 使用FragmentActivity + Loader更新FragmentStatePagerAdapter的问题

我正在尝试使用FragmentActivity和ViewPager来显示Fragments动态列表。 有很多关于如何做静态版本的例子。 我的问题是我显示的列表需要动态加载,也可以根据用户输入(添加/删除)进行更改。 我正在尝试使用自定义的android.support.v4.content.Loader来加载我可用于构建列表的数据集。 在我的设置中一切正常,直到我想要更新适配器并发出FragmentStatePagerAdapter#notifyDataSetChanged()调用,此时执行此代码(来自FragmentStatePagerAdapter ) public void finishUpdate(View container) { if(mCurTransaction != null) { mCurTransaction.commit(); // BANG!!! The exception is thrown mCurTransaction = null; mFragmentManager.executePendingTransactions(); } } 事务提交失败,并显示以下消息: java.lang.IllegalStateException: Can not perform this action inside of onLoadFinished 因为在FragmentManagerImpl中执行此代码: private void checkStateLoss() { if (mStateSaved) { throw new IllegalStateException( “Can not perform this action after […]

片段作为Android中的单身人士

一般问题我可以将碎片定义为单身人士吗? 具体问题在我的应用程序中,我有一个’FragmentActivity’和FragmentPager ,它有两个片段, FragmentA和FragmentB 。 我将片段定义为FragmentA Singletons扩展Fragment类: 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 […]

如何在viewpager的特定选项卡中显示当前片段?

我想在tab b_1获取最后一个片段,或者当前显示的内容与我相同。 正如您在下图中看到的那样,我有一个ViewPager,另一个是内部tab b 。 因此,显示了四个当前片段。 问题 :如何获取Fragment 2实例? 我见过另一种解决方案,但没有一种适用于这种情况。 注释: ViewPager中托管的片段不是必需的。 我可以在一个标签中打开另外两个片段。 使用这种方法,我得到所有当前可见的片段,但不是我想要的特定片段。 public ArrayList getVisibleFragment() { List fragments = getSupportFragmentManager().getFragments(); ArrayList visibleFragments = new ArrayList(); if (fragments != null) { for (Fragment fragment : fragments) { if (fragment != null && fragment.isVisible()) visibleFragments.add(fragment); } } return visibleFragments; } 一些有趣的代码 activity_main.xml中 MainActivity.java public class […]

测量ViewPager

我有一个具有子ViewPager的自定义ViewGroup。 ViewPager由一个PagerAdapter提供,它为PagerAdapter提供了一个LinearLayout ,它在高度和宽度上都有WRAP_CONTENT LayoutParams 。 视图显示正确,但是当在child.measure()上调用child.measure()方法时,它不返回LinearLayout的实际尺寸,但似乎填充了所有剩余空间。 任何想法为什么会发生这种情况以及如何修改它?

使用ViewPager的Android ClassNotFoundException

我收到以下错误,我不明白… 06-15 22:06:49.196: W/dalvikvm(17622): threadid=1: thread exiting with uncaught exception (group=0x40bcc1f8) 06-15 22:07:05.031: W/dalvikvm(17877): threadid=1: thread exiting with uncaught exception (group=0x40bcc1f8) 06-15 22:07:05.031: E/AndroidRuntime(17877): FATAL EXCEPTION: main 06-15 22:07:05.031: E/AndroidRuntime(17877): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.whipple.android/com.whipple.android.StockActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class ViewPager 06-15 22:07:05.031: E/AndroidRuntime(17877): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1968) 06-15 22:07:05.031: E/AndroidRuntime(17877): at […]

如何在ViewPager上进行循环滚动?

我想将我的ViewPager设置为循环滚动。 我希望第一页能够滚动到第2页和最后一页。 我希望我的最后一页滚动到[最后一页-1]和第一页。 我已经尝试了,虽然我不确定何时调用我创建的方法。 在ViewPager中似乎没有一种方法可以处理这种事情,所以我创建了以下内容。 public ViewPagerAdapter(final ViewPager pager, int… pageIDs) { super(); int actualNoOfIDs = pageIDs.length; count = actualNoOfIDs + 2; Log.d(TAG, “actualNoOfIDs: ” + actualNoOfIDs + “count: ” + count); pageIDsArray = new int[count]; for (int i = 0; i < actualNoOfIDs; i++) { pageIDsArray[ i + 1] = pageIDs[i]; } pageIDsArray[0] = […]

Viewpager没有显示在RecyclerView行内

我想制作一个“照片细节”活动或片段,我在其上方和下方显示照片aViewpPager,显示相关照片的评论和喜欢(2个标签)。 为了使屏幕’Scrollable’所以我可以向上/向下滚动评论和喜欢并向左/向右滑动我决定使用带有2行的RecyclerView: 行1:照片(ImageView)。 第2行:SlidingTabLayout + ViewPager + FragmentPagerAdapter。 代码编译并运行,显示图像和slidingTabLayout,但不显示ViewPager。 所以我的两个主要问题是: 1 – 我的实施有什么问题。 2 – 对于我想要达到的目标,是否有替代或更好的解决方案? 注意:我不想使用带有header的listView。我想使用RecyclerView,因为它更容易在网络的顶部/底部添加元素。 PhotoDetailsActivity.java public class MainActivity extends ActionBarActivity { RecyclerView recyclerViewPhotoDetails; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.recyclerViewPhotoDetails = (RecyclerView) this.findViewById(R.id.recycler_view_photo_details); this.recyclerViewPhotoDetails.setLayoutManager(new LinearLayoutManager(this)); this.recyclerViewPhotoDetails.setAdapter(new PhotoDetailsRecyclerAdapter(this.getSupportFragmentManager())); } } PhotosDetailsRecyclerAdapter.java public class PhotoDetailsRecyclerAdapter extends RecyclerView.Adapter { private static final int […]

关闭网络后,AdWhirl导致java.lang.NullPointerException

我在我的一个应用程序中使用了AdWhirl和Admob,发布后,我们从adwhirl中得到了很多错误,并且它很容易像这样重现: 广告出现后,我关闭wifi,等待广告超时,然后按返回按钮退出应用程序。 那么bug出现了.src可以从这里下载。例外是这样的: 05-17 11:00:13.265: E/AndroidRuntime(12482): java.lang.RuntimeException: Unable to destroy activity {me.test.admob/me.test.admob.AdWhirlTestActivity}: java.lang.NullPointerException 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3112) 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3130) 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.app.ActivityThread.access$1200(ActivityThread.java:123) 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1180) 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.os.Handler.dispatchMessage(Handler.java:99) 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.os.Looper.loop(Looper.java:137) 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.app.ActivityThread.main(ActivityThread.java:4424) 05-17 11:00:13.265: E/AndroidRuntime(12482): at java.lang.reflect.Method.invokeNative(Native Method) 05-17 […]

FragmentTabHost – 没有标签为null的标签

几天前我使用NavigationDrawer在Fragment实现了TabHostFramgent ,我遇到了一个问题,即出现以下错误: java.lang.IllegalStateException:没有标记为null的选项卡 事情是所有的工作完美,因为我的NavigationDrawer第一个项目列表是我的TabHostFragment ,所以它工作完美,但问题是当我进入第二个项目的示例然后我想回到第一个项目,每个我尝试这样的时间它崩溃了。 我到处搜索,在SO , code.google.com等等…我仍然没有得到正确的答案。 我的tab_host_test_2.xml看起来像: 我的activity_main.xml我的NavigationDrawer看起来像: 我的TabHostFragment.java : public class TabHostFragment extends Fragment { public TabHostFragment(){ } private FragmentTabHost mTabHost; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.tab_host_test2, container, false); return rootView; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { mTabHost = (FragmentTabHost)view.findViewById(android.R.id.tabhost); mTabHost.setup(getActivity(), […]