Перемещение ViewPager

У меня есть app, который содержит один ViewPager с Вашими 3 Tabs. Перейдя со второй из первой он делает это нормальным, но уже от второй делают третьей немного медленной нужно выделять, что в третьей у меня есть галерея изображений, которые не таковы взвешивать весом 40.4K приближенный темой разрешения, я не знаю, почему она становится медленной, но она как будто, во время того, чтобы быть прокрученным, верят снова во всю галерею, Спасибо.

Здесь - код tab2

RecyclerView recyclerView;
RecyclerView.Adapter adapter;
RecyclerView.LayoutManager layoutManager;
View contentView;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    contentView = inflater.inflate(R.layout.fragment_dos, null);
    return contentView;
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    recyclerView = (RecyclerView) contentView.findViewById(R.id.reyclerViewDos);
    layoutManager = new LinearLayoutManager(getActivity());
    recyclerView.setLayoutManager(layoutManager);

    adapter = new AdapterClase();
    recyclerView.setAdapter(adapter);
}

}

это Ваш recycler

introducir el código aquí

public class AdapterClase extends RecyclerView. Adapter {

private static final int[] MIS_IMAGENES= new int[]{R.drawable.cold1, R.drawable.cold2};
private static final String[] MIS_CANCIONES = new String[]{"Mylo Xyloto", "A Head Full of Dreams"};

public class ViewHolderClase extends RecyclerView.ViewHolder {

    TextView banda, cancion;
    ImageView imageView;

    public ViewHolderClase(View itemView) {

        super(itemView);
        imageView = (ImageView) itemView.findViewById(R.id.imagenes);
        cancion = (TextView) itemView.findViewById(R.id.musica);
    }
}

@Override
public ViewHolderClase onCreateViewHolder(ViewGroup parent, int viewType) {

    View viewItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_item, null);
    return new ViewHolderClase(viewItem);
}

@Override
public void onBindViewHolder(ViewHolderClase holder, int position) {
    holder.imageView.setBackgroundResource(MIS_IMAGENES[position]);
    holder.cancion.setText(MIS_CANCIONES[position]);
}

@Override
public int getItemCount() {
    return MIS_CANCIONES.length;
}

}

хороший этим является tab 3 точно

RecyclerView recyclerView;
RecyclerView.Adapter adapter;
RecyclerView.LayoutManager layoutManager;
View contentView;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    contentView = inflater.inflate(R.layout.fragment_tres, null);
    return contentView;
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    recyclerView = (RecyclerView) contentView.findViewById(R.id.reyclerViewTres);
    layoutManager = new GridLayoutManager(getActivity(), 2);
    recyclerView.setLayoutManager(layoutManager);

    adapter = new AdapterAlbum();
    recyclerView.setAdapter(adapter);

}

@Override
public void onClick(View v) {
}

} и этот Ваш recycler

private static final int[] MIS_IMAGENES = new int[]{R.drawable.cold22, R.drawable.cover3, R.drawable.cover};


public class ViewHolderClase extends RecyclerView.ViewHolder {

    ImageView imageView;

    public ViewHolderClase(View itemView) {


        imageView = (ImageView) itemView.findViewById(R.id.cover);

    }
}

@Override
public ViewHolderClase onCreateViewHolder(ViewGroup parent, int viewType) {
    View viewItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.album, null);
    return new ViewHolderClase(viewItem);
}

@Override
public void onBindViewHolder(final ViewHolderClase holder, int position) {
    holder.imageView.setBackgroundResource(MIS_IMAGENES[position]);


@Override
public int getItemCount() {
    return MIS_IMAGENES.length;
}

}

3
задан 29.03.2016, 15:53
1 ответ

Вероятно проблема происходит из-за того, что загружает изображения в главном трэде. Сначала ты должен обеспечивать себе, что в ImageView который ты используешь в твоем Адаптере, не имел никакого назначенного по умолчанию изображения в xml (android:src="@drawable/imagen_default"). Секунда, используй книжный магазин, который реализовывал бы груз изображений асинхронной формы. Из-за возможности использования я рекомендую тебе использовать Piccaso.

Продолжая инструкции с Вашей страницы, ты можешь добавлять это к твоему проекту.

Потом в твоем методе onBindViewHolder ты это заменяешь следующим:

@Override
public void onBindViewHolder(final ViewHolderClase holder, int position) {
    Picasso.with(holder.imageView.getContext()).load(MIS_IMAGENES[position]).into(holder.imageView);    
}

Привет.

2
ответ дан 24.11.2019, 14:41