【问题标题】:Android - Native ad refreshes everytime it comes to focusAndroid - 每次聚焦时都会刷新原生广告
【发布时间】:2017-09-17 08:58:09
【问题描述】:

我在我的 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;
    }

【问题讨论】:

    标签: android listview admob native-ads


    【解决方案1】:

    ListView 重用在 getView() 中创建的子视图,并将它们作为该方法的第二个参数(实际上称为 convertView)发送。您可以检查该视图是否不为空并使用它而不是每次都创建一个新视图。 您可以在此问题的答案中查看更多详细信息: What is the purpose of `convertView` in ListView adapter?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 2014-01-15
      • 2014-12-18
      • 2016-06-29
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      相关资源
      最近更新 更多