Android - нативная реклама обновляется каждый раз, когда доходит до внимания

Я реализовал собственное объявление в своем ListView, оно работает нормально, но перезагружается каждый раз, когда доходит до фокусировки. Есть ли способ удерживать экземпляр или представление, чтобы оно не перезагружалось каждый раз. Или можно заблокировать воссоздание вида?

class CustomAdapter extends BaseAdapter {

    String content, currentFile, pv;

    @Override
    public int getCount() {
        return fileList.size();
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {



        if (i == 0) {

            if (isNetworkAvailable()) {

            // ad loads here

                LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                view = inflater.inflate(R.layout.native_ad_item, null);
                final CardView cardView = (CardView) view.findViewById(R.id.card_view);
                NativeExpressAdView adView = (NativeExpressAdView) view.findViewById(R.id.nativeAd);
                AdRequest request = new AdRequest.Builder().addTestDevice("264647BDFDDB6FBB0F34C797D5D53A4D").build();
                adView.loadAd(request);



            }

        } else {

            LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.purchased_list_item, null);

            // rest of the code

        }

        return view;
    }

person cht    schedule 17.09.2017    source источник


Ответы (1)


ListView повторно использует дочерние представления, созданные в getView (), и отправляет их в качестве второго параметра (который на самом деле называется convertView) этого метода. Вы можете проверить, не является ли это представление нулевым, и использовать его вместо того, чтобы каждый раз создавать новый. Вы можете увидеть более подробную информацию в ответах на этот вопрос: Что такое цель `convertView` в адаптере ListView?

person Crispert    schedule 17.09.2017