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) {}
}
添加回答
舉報