4 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用 Hussain answer 并使用此代碼獲取您的片段內(nèi)部onPageSelected
方法
Fragment fragment = (Fragment) adaper.instantiateItem(mViewPager, position);

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
每次更改片段時(shí)都必須再次設(shè)置適配器,可以在 onResume 上執(zhí)行此操作。嘗試這樣的事情:
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貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
Soo,我找到了解決方案,當(dāng)然我的問題出在其他地方。非常抱歉耽誤了您的時(shí)間,感謝您的努力!
問題是我將新的 Day 對象添加到我的列表中而沒有在onCreateView
調(diào)用時(shí)刪除舊的對象,因此新的、更新的數(shù)據(jù)根本沒有顯示。

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
實(shí)現(xiàn)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) {}
}
添加回答
舉報(bào)