Фрагмент не отображает представление после обновления, но создается его экземпляр.
Я уже пытался сделать недействительным повторное присоединение представления, но работать не будет.
// В основном действии
mDashBoardBannerAdapter.addItems(bannersList);
mViewPager.setAdapter(mDashBoardBannerAdapter);
mViewPager.setPageTransformer(false, mCardShadowTransformer);
mViewPager.setPageMargin(70);
mViewPager.addOnPageChangeListener(this);
// Адаптер
public class DashBoardBannerAdapter extends FragmentStatePagerAdapter {
public static final String TAG = "DashBoardBannerAdapter";
public List<DashBoardResponse.Banners> bannersList;
public List<Fragment_Banner> mFragments = new ArrayList<>();
public DashBoardBannerAdapter(FragmentManager fm) {
super(fm);
}
public void addItems(List<DashBoardResponse.Banners> bannersList) {
this.bannersList=bannersList;
Log.d(TAG, "addItems: fragment size before"+mFragments.size());
mFragments.clear();
Log.d(TAG, "addItems: fragment size after"+mFragments.size());
for (int i = 0; i < bannersList.size(); i++)
{
Log.d(TAG, "addItems: "+i);
Bundle bundle = new Bundle();
bundle.putString("imageurl", bannersList.get(i).getImage());
Fragment_Banner fragment_promotion=new Fragment_Banner();
fragment_promotion.setArguments(bundle);
mFragments.add(fragment_promotion);
}
notifyDataSetChanged();
}
@Override
public Fragment getItem(int position)
{
return mFragments.get(position);
}
@Override
public Object instantiateItem(ViewGroup container, int position)
{
Object fragment = super.instantiateItem(container, position);
mFragments.set(position, (Fragment_Banner) fragment);
return fragment;
}
@Override
public int getCount() {
return bannersList.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object)
{
// TODO Auto-generated method stub
super.destroyItem(container, position, object);
}
}
//Fragment
public class Fragment_Banner extends Fragment
{
public static final String TAG = "Fragment_Banner";
View view;
ImageView ivOnboarderImage;
String imageurl;
public static Fragment_Banner newInstance() {
Bundle args = new Bundle();
Fragment_Banner fragment = new Fragment_Banner();
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
view = inflater.inflate(R.layout.fragment_banner, container, false);
imageurl = getArguments().getString("imageurl");
ivOnboarderImage =view.findViewById(R.id.iv_image);
ivOnboarderImage.setImageDrawable(null);
ivOnboarderImage.setVisibility(View.VISIBLE);
if (imageurl != null) {
Picasso.Builder builder = new
Picasso.Builder(getActivity().getApplicationContext());
builder.listener(new Picasso.Listener() {
@Override
public void onImageLoadFailed(Picasso picasso, Uri uri,
Exception exception) {
}
});
Picasso pic = builder.build();
pic.load(imageurl)
.fit()
.memoryPolicy(MemoryPolicy.NO_CACHE)
.networkPolicy(NetworkPolicy.NO_CACHE)
.placeholder(R.drawable.ic_launch)
.error(R.drawable.ic_email)
.into(ivOnboarderImage);
}
return view;
}
@Override
public void onDestroyView() {
super.onDestroyView();
}}
При первом создании выход верен.Но при обновлении действия есть другие представления в действии, но не для баннера.Я делал логи, если фрагмент не конструируется, он тоже работает.Я пытался проверить Пикассо, он также работает нормально.Только вид не отображается после обновления.