kim*_*imv 5 android android-fragments android-viewpager
我有一个ViewPager ,Fragment如果某个动作发生,我必须更换第一个.
public static class PagerAdapter extends FragmentStatePagerAdapter{
private TempChannel latestChannel;
private VideosFragment.SortType sortType;
public PagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
if(latestChannel == null) {
return new LatestVideosFragment();
}else{
return VideosFragment.getVideosFragment(latestChannel, sortType);
}
case 1:
return new LiveVideosFragment();
case 2:
return new ConversationsFragment();
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,当我单击某个通道时LatestVideosFragment,适配器中的第一个位置应该更改为VideosFragment该类的实例.
public void startLatestChannelFragment(TempChannel channel, VideosFragment.SortType sortType){
adapter.setLatestChannel(channel, sortType);
adapter.notifyDataSetChanged();
Log.d("x", "on channel started");
}
Run Code Online (Sandbox Code Playgroud)
我假设调用notifyDataSetChanged()适配器会更新片段,但事实并非如此.也试过呼吁invalidate()ViewPager没有任何影响.的Fragment,如果我去了第三个选项卡只更新,然后返回到第一.
在这里查看答案以获得一些好的解决方案:ViewPager PagerAdapter不更新View
基本上覆盖getItemPosition你的 PagerAdapter意志会给你带来理想的效果.
public int getItemPosition(Object object) {
return POSITION_NONE;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9767 次 |
| 最近记录: |