Как не повторять элементы ListView в системе Android - PullRequest
0 голосов
/ 23 сентября 2018

У меня большая проблема (или не для вас). ListView моего мобильного приложения повторяет элементы, когда имеется более 15 данных.Я использую облачное хранилище для Firebase для хранения данных.

Код моего адаптера:

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {

    View view = convertView;

    if(view ==  null){
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);

        view = inflater.inflate(R.layout.lista_receitas, parent, false);

        if(receitasAdap.size() > 0){
            Receitas receita = receitasAdap.get(position);

            final ImageView imagemReceita = (ImageView) view.findViewById(R.id.imagemReceitaId);
            TextView tituloReceita = (TextView) view.findViewById(R.id.tituloReceitaId);

            FirebaseStorage firebaseStorage = FirebaseStorage.getInstance();
            StorageReference storageReference = firebaseStorage.getReferenceFromUrl("gs://receitas-pantaneiras.appspot.com/").child(receita.getUrl());


            storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                @Override
                public void onSuccess(Uri uri) {
                Picasso.with(getContext()).load(uri.toString()).resize(widht, height).centerCrop().into(imagemReceita);
                }
            });
            tituloReceita.setText(receita.getNome());
            tituloReceita.setVisibility(View.VISIBLE);
        }
    }

    return view;
}

Repeating elements

1 Ответ

0 голосов
/ 26 сентября 2018

Попробуйте код ниже:

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {

    View view = convertView;

    if(view ==  null){
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);

        view = inflater.inflate(R.layout.lista_receitas, parent, false);
    }
    Receitas receita = receitasAdap.get(position);

    final ImageView imagemReceita = (ImageView) view.findViewById(R.id.imagemReceitaId);
    TextView tituloReceita = (TextView) view.findViewById(R.id.tituloReceitaId);

    FirebaseStorage firebaseStorage = FirebaseStorage.getInstance();
    StorageReference storageReference = firebaseStorage.getReferenceFromUrl("gs://receitas-pantaneiras.appspot.com/").child(receita.getUrl());


    storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
        @Override
        public void onSuccess(Uri uri) {
            Picasso.with(getContext()).load(uri.toString()).resize(widht, height).centerCrop().into(imagemReceita);
        }
    });
    tituloReceita.setText(receita.getNome());
    tituloReceita.setVisibility(View.VISIBLE);

    return view;
}

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...