Articles of fragmentpageradapter

使用PagerAdapter的IllegalStateException

我在此活动中收到IllegalStateException,但不太确定发生了什么。 这是QuickContactActivity中的ViewPagerAdapter类。 private class ViewPagerAdapter extends FragmentPagerAdapter { public ViewPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); } @Override public Fragment getItem(int position) { QuickContactListFragment fragment = new QuickContactListFragment(); final String mimeType = mSortedActionMimeTypes.get(position); final List actions = mActions.get(mimeType); fragment.setActions(actions); return fragment; } @Override public int getCount() { return mSortedActionMimeTypes.size(); } } 这是崩溃日志: 07-15 09:49:21.060: E/com.##.##.##.Application(12378): Thread uncaught exception: […]

ViewPager里面的片段,如何保留状态?

在我的应用程序中,片段活动包含两个片段,片段A和片段B.片段B是包含3个片段的视图寻呼机。 在我的活动中,为了防止在配置更改时重新创建片段: if(getSupportFragmentManager().findFragmentByTag(MAIN_TAB_FRAGMENT) == null) { getSupportFragmentManager().beginTransaction().replace(R.id.container, new MainTabFragment(), MAIN_TAB_FRAGMENT).commit(); } 片段B的代码: public class MainTabFragment extends Fragment { private PagerSlidingTabStrip mSlidingTabLayout; private LfPagerAdapter adapter; private ViewPager mViewPager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRetainInstance(true); } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_tab, container, false); } @Override public void […]

IllegalStateException:无法更改片段的标签是android:switcher now android:switcher

我的活动使用TabLayout + ViewPager 。 此处的选项卡和页面数量是动态的,具体取决于从服务器获取的数据。 崩溃是通过Crashlytics报道的,我无法复制它。 我的活动代码: @Override protected void onCreate(Bundle savedInstanceState) { boolean isAppRestarting = PrefUtils.getBoolean(“app_restarting”, false); if (isAppRestarting) { super.onCreate(null); this.savedInstanceState = null; } else { super.onCreate(savedInstanceState); this.savedInstanceState = savedInstanceState; } initSlidingTabs(); fetchSomeData(); // see onDataFetched() below } private void initSlidingTabs() { List sdsTabs = new ArrayList(); Logger.i(“There is saved instance state”); ArrayList […]

设计支持TabLayout

我正在玩设计支持库TabLayout。 我的问题是其中一个标签的标题太长,因此,它是在2行而不是1上绘制的。我想知道是否有一种方法缩放标题文本大小以确保所有标题都在1行上绘制。 这是一个截图,以更好地解释我的问题: 如果细节很重要,我正在使用Design Support TabLayout,一个ViewPager和一个FragmentPagerAdapter来填充我的标签。 提前致谢!

Android FragmentStatePagerAdapter

我正在使用这个例子使用FragmentStatePagerAdapter。 MyAdapter类实现如下: public static class MyAdapter extends FragmentStatePagerAdapter { public MyAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return NUM_ITEMS; } @Override public Fragment getItem(int position) { return ArrayListFragment.newInstance(position); } } ListFragment类包含以下创建新实例的方法: /** * Create a new instance of CountingFragment, providing “num” * as an argument. */ static ArrayListFragment newInstance(int num) { ArrayListFragment […]

FragmentPagerAdapter – 如何处理方向更改?

我使用FragmentPagerAdapter包含几个需要通知数据库更改的片段。 我通过遍历实现回调接口的片段并调用refreshData()方法来完成此操作。 这可以正常工作,直到设备改变方向。 方向更改后,即使方法调用似乎有效,片段UI也不会明显刷新。 从我到目前为止所读到的,这是因为FragmentPagerAdapter处理片段生命周期,并且接收回调的片段不是实际显示的片段。 private class DataPagerAdapter extends FragmentPagerAdapter { private DataFragment[] fragments = new DataFragment[] { new FooDataFragment(), BarDataFragment()}; public DataPagerAdapter(android.support.v4.app.FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return fragments[position]; } @Override public int getCount() { return fragments.length; } public DataFragment[] getFragments() { return fragments; } } protected void refreshData() […]

如何使用FragmentPagerAdapter获取包含不同内容的标签?

我希望有不同的标签,你可以在Android市场中轻扫。 每个选项卡应使用一个片段并使用一种方法。 这是我的FragmentPagerAdapter类: public class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { Fragment fragment =null; switch (position) { case 0: fragment = new ConnectionFragment(); break; case 1: fragment = new DataFragment(); break; case 2: fragment = new GraphFragment(); break; } return fragment; } @Override public int […]

尝试在空对象引用上调用虚方法’android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()’

我的应用程序包含4个片段作为使用FragmentPagerAdapter加载到父片段内的制表符。 问题是,当我运行应用程序并按下并重新打开应用程序时,我收到此错误日志: FATAL EXCEPTION: main java.lang.NullPointerException: Attempt to invoke virtual method ‘android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()’ on a null object reference at android.support.v4.app.FragmentManagerImpl.ensureExecReady(FragmentManager.java:1949) at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1965) at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:620) at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:143) at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:513) … 父片段内的代码行是: viewPager.setAdapter(adapter); tabLayout.setupWithViewPager(viewPager); 和ViewPage和Adapter都不是空的! 我必须提到我的所有Fragment的生命周期都在管理中,并且在适配器内部发生了null问题!当我使用Activity作为父级而不是Fragment时,同样的适配器工作正常!

在恢复活动时刷新FragmentStatePagerAdapter上的图像

我创建了一个使用FragmentStatePagerAdapter提供小图库的活动。 但是,当活动恢复时(例如,从其他活动返回后),我无法刷新它。 每次前两张图片都是空白的,只有在我将两张图片刷到一边后,它们才会刷新。 我find的答案都没有起作用(尤其是覆盖getItemPosition() ) 我这样设置: mPagerAdapter = new PhotosPagerAdapter(getSupportFragmentManager()); mPager = (ViewPager) findViewById(R.id.photosViewPager); mPager.setAdapter(mPagerAdapter); 然后我有FragmentStatePagerAdapter类: private class PhotosPagerAdapter extends FragmentStatePagerAdapter{ public PhotosPagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return photos.size(); } @Override public Fragment getItem(int position) { ImageFragment f = new ImageFragment(position); return f; } @Override public int getItemPosition(Object object) { […]

FragmentPagerAdapter滑动以显示ListView 1/3屏幕宽度

编辑: 请参阅下面的答案 – > 我想要一个视图,当向右滑动时,会显示listView。 与新版Google Play商店中实施的内容非常相似(下面的示例图片)。 我认为它是一个ViewPager,但我尝试重复它没有占上风。 我认为可能只是’listView Page’width属性设置为特定的dp但不起作用。 我也尝试修改pakerfeldt的viewFlow并且无法弄清楚Google是如何做到这一点的 我是在正确的轨道上吗? 如果有人知道如何复制这个,我会非常感激。 我认为这可能成为在平板电脑上显示导航视图的一种流行的新方式….? 代码将是最好的帮助。 谢谢!! 向右滑动: 刷完; 布局显示列表和第二部分(完全如图所示)列表片段未填满屏幕: 当用户向左滑动时,仅显示主页面,如果用户再次向左滑动,则viewPager继续到下一页面。