- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的主要 Activity 中,我有多个 fragment ,您可以通过底部导航进行导航(替换主要 Activity XML 中的 FrameLayout 容器)
其中一个 Fragment 包含一个 ViewPager,它应该使用 FragmentStatePagerAdapter (MyAdapter) 显示多个 Fragment (MyFragment)。
我第一次打开该 Fragment 时它工作得很好,但是当我导航到另一个 Fragment 然后返回时,Pager 中的前两个 Fragment 是灰色且未填充的。有人知道问题出在哪里吗?
Adapter 是这样设置的:这在 onFragmentViewCreated
private void setUpHeaderPager() {
featuredAdapter = new MyAdapter(getActivity().getSupportFragmentManager());
myPager.setAdapter(myAdapter);
pageIndicatorView.setViewPager(myPager);
pageIndicatorView.setAnimationType(AnimationType.WORM);
compositeSubscription.add(apiService.getMyPOJOs()
.subscribeOn(networkScheduler)
.observeOn(uiScheduler)
.subscribe(new Action1<List<MyPOJO>>() {
@Override
public void call(List<MyPOJO> myPOJOs) {
myAdapter.setItems(myPOJOs);
pageIndicatorView.setCount(myPOJOs.size());
myPager.setCurrentItem(0);
pageIndicatorView.setSelection(0);
}
}, new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
throwable.printStackTrace();
}
}));
}
这就是适配器的样子:
private class MyAdapter extends FragmentStatePagerAdapter {
private List<SomePOJO> items = new ArrayList<>(0);
public void setItems(@Nonnull List<Collection> items) {
this.items = items;
notifyDataSetChanged();
}
FeaturedReleasesAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public Fragment getItem(int position) {
return MyFragment.newInstance(items.get(position));
}
@Override
public int getCount() {
return items.size();
}
}
万一MyFragment的相关代码:
public class FeaturedReleaseFragment extends BaseFragment {
private MyPOJO someObject = null;
// Bind some views
public static MyFragment newInstance(MyPOJO someObject) {
MyFragment fragment = new MyFragment();
fragment.someObject = someObject;
return fragment;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_my_fragment, container, false);
ButterKnife.bind(this, rootView);
populate();
return rootView;
}
private void populate() {
if (MyPOJO != null) {
// set some text and load images
}
}
onFragmentViewCreated
被调用得很好,适配器 getItem
不是...
最佳答案
这可能是您在底部导航 fragment 之间导航的方式以及随后它们生命周期中发生的事情。
如果您在 FragmentTransaction
上使用 .replace
,请尝试使用 .show
和 .hide
。
类似下面的东西可能会做到这一点:
public void navigateToFragment( Fragment frag ) {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.hide(currentFragment);
if ( !fragment.isAdded() ) {
transaction.add(R.id.container,fragment)
} else if ( !fragment.isHidden() ) {
transaction.show(fragment);
}
transation.commit();
}
关于android - FragmentStatePagerAdapter 项目不加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44946085/
我正在使用 this example 处理 FragmentStatePagerAdapter . MyAdapter 类实现如下: public static class MyAdapter ext
当我使用 FragmentStatePagerAdapter 扩展我的适配器并使用 fragment 管理器和常量 BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT 传递参数
我在使用 FragmentStatePagerAdapter 管理更改的项目列表时遇到问题。请查来源here . 问题是,当底层列表更改时,并且我调用 notifyDataSetChanged,适配器
我正在实现FragmentStatePagerAdapter并且我想要一个可拖动的标题。每个 fragment 的标题都可以像寻呼机效果一样进行交互。用户可以拖动或浏览所有 fragment 的tit
我已经实现了一个在 viewpager 中显示 fragment 的 Activity 。该 Activity 最初显示给定类型(类型 A)的 5 个 fragment 。每个类型 A fragmen
我知道还有其他几篇关于此主题的帖子,但我想粘贴我的代码,因为我相信其中可能存在导致我出现问题的错误。我的 FragmentStatePagerAdapter 返回了错误的位置,我不确定为什么。 这是我
在我的主要 Activity 中,我有多个 fragment ,您可以通过底部导航进行导航(替换主要 Activity XML 中的 FrameLayout 容器) 其中一个 Fragment 包含一
我有一个 ViewPager+FragmentStatePagerAdapter 主机 Activity ,它让我可以浏览一组 fragment (同一 ItemFragment 类的不同实例),并且
我在我正在开发的应用程序中遇到了 OutOfMemoryErrors,我很难弄清楚如何修复它以及到底是什么问题。我正在使用 FragmentStatePagerAdapter,因为这似乎是最佳/推荐的
我想知道是否可以在没有支持库的情况下使用 FragmentStatePagerAdapter 类或其等效类? 我知道如何使用 native fragment 来代替支持库中的 fragment ,并且
我有一个 ViewPager,其中的页面数是动态的。每个页面都需要从数据库读取并显示该页面的数据集。 我将当前选定的页面标题与数据库“用户名”中的第一个值进行比较,以检查数据是否与该页面相关。 我的
我正在尝试在 View 页面中显示一些 fragment 。我使用从 NavigationDrawer 启动 PlanFragment FragmentTransaction transaction
我正在学习教程 here它使用带有 FragmentStatePagerAdapter 的 TabLayout。一切都很好,除了我需要禁用我的第二个选项卡上的滑动,因为它使用水平滚动。如果所有选项卡都
Noob android 开发者的问题 问题缺失: 我正在尝试实现无限滚动功能,当 FragmentStatePagerAdapter 到达最后一项时通过网络请求加载更多数据,目前我将 getCoun
我有一个 ViewPager,其中包含 Fragment。 ViewPager 有一个适配器 FragmentStatePagerAdapter 适配器的 getItem 方法。 @Override
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我创建了一组水平选项卡,对于每个选项卡内容,它都有一个 View 分页器,它又允许滑动 View 的内容。 我目前正在将其编码为适配器中的 3 个 View ,并返回一个新的内部 fragment ,
我有一个名为 MainActivity 的 Activity ,它有一个 ViewPager 和一个 TabLayout。 ViewPager 有 4(四)个 fragment 绑定(bind)在那里
我想要实现的目标: 带有 ViewPager 的 Activity,显示适配器中对象列表的 fragment (FragmentStatePagerAdapter)。 最初,Activity 将 SQ
我在我的单一 Activity 应用程序上使用嵌套的 FragmentStatePagerAdapter。当前布局是: Activitiy - Login Fragment - Master
我是一名优秀的程序员,十分优秀!