4 回答
TA贡献1794条经验 获得超7个赞
使用 Hussain answer 并使用此代码获取您的片段内部onPageSelected
方法
Fragment fragment = (Fragment) adaper.instantiateItem(mViewPager, position);
TA贡献1874条经验 获得超12个赞
每次更改片段时都必须再次设置适配器,可以在 onResume 上执行此操作。尝试这样的事情:
private void initAdapter(){
lessonsAdapter = new LessonListAdapter();
dayList.setAdapter(lessonsAdapter);
dayList.setLayoutManager(new LinearLayoutManager(context) {
@Override
public boolean canScrollVertically() {
return false;
}
});
dayList.addItemDecoration(new MarginItemDecoration(context));
}
@Override
public void onResume() { initAdapter(); }
TA贡献1862条经验 获得超6个赞
Soo,我找到了解决方案,当然我的问题出在其他地方。非常抱歉耽误了您的时间,感谢您的努力!
问题是我将新的 Day 对象添加到我的列表中而没有在onCreateView
调用时删除旧的对象,因此新的、更新的数据根本没有显示。
TA贡献1789条经验 获得超8个赞
实现ViewPager.OnPageChangeListener然后更新里面的fragment
public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener {
...
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
...
viewPager.addOnPageChangeListener(this);
...
...
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
@Override
public void onPageSelected(int position) {
Fragment fragment = adapter.getFragment(position);
if (fragment != null) {
// Update fragment here
}
}
@Override
public void onPageScrollStateChanged(int state) {}
}
添加回答
举报