i need to place ads in between recyclerview, i tried one method it works nice and ads loads but problem is ads are overlapped on list view. anyone please help me thank you in advance
Below is the code for Adapter.class
public class NewsAdapter extends RecyclerView.Adapter<ViewHolder> {
private static final int CONTENT_TYPE = 0;
private static final int AD_TYPE = 1;
private int[] viewTypes;
int Holderid;
private List<Newslist> newslists;
private Context context;
public NewsAdapter(List<Newslist> newslists, Context context) {
super();
//Getting all the news updates
this.newslists = newslists;
this.context=context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//Inflate the layout, initialize the View Holder
ViewHolder holder = null;
if (viewType == CONTENT_TYPE) {
View newsView = LayoutInflater.from(parent.getContext()).inflate(R.layout.news_list, parent, false);
holder=new ItemViewHolder(newsView);
} else {
View adView = LayoutInflater.from(parent.getContext()).inflate(R.layout.native_ads, parent, false);
holder=new AdViewHolder(adView);
}
return holder;
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, final int position) {
if (position % 6 == 3) {
AdViewHolder holder = (AdViewHolder) viewHolder;
//Load the Ad
AdRequest request = new AdRequest.Builder()
.build();
holder.adView.loadAd(request);
} else {
ItemViewHolder holder = (ItemViewHolder) viewHolder;
Newslist newslist = newslists.get(holder.getAdapterPosition());
holder.message.setText(newslist.getMessage());
//Image loading using singleton class
ImageLoader imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader();
holder.imageView.setImageUrl(newslist.getImageurl(), imageLoader);
holder.imageView.setDrawingCacheBackgroundColor(R.mipmap.ic_launcher);
holder.time.setText(newslist.getTime());
}
}
@Override
public int getItemCount() {
return newslists.size();
}
@Override
public int getItemViewType(int position) {
if (position % 6 ==3)
return AD_TYPE;
return CONTENT_TYPE;
}
// return newslists.get(position).getViewType();
}
class ViewHolder extends RecyclerView.ViewHolder {
ViewHolder(View v) {
super(v);
}
}
class ItemViewHolder extends ViewHolder {
TextView message;
NetworkImageView imageView;
TextView time;
RelativeLayout relativeLayout;
ItemViewHolder(View itemView) {
super(itemView);
message = (TextView) itemView.findViewById(R.id.headline);
time = (TextView) itemView.findViewById(R.id.time);
imageView = (NetworkImageView) itemView.findViewById(R.id.networkImageView2);
relativeLayout = (RelativeLayout) itemView.findViewById(R.id.relativeLayout);
}
}
class AdViewHolder extends ViewHolder {
NativeExpressAdView adView;
AdViewHolder(View v) {
super(v);
adView = (NativeExpressAdView) v.findViewById(R.id.nativeAdView);
}
}