Java 从活动返回后,RecyclerView滚动变慢
我正在用Firebase Firestore编写新闻/文章应用程序。并且,我使用RecyclerView列出具有恒定高度的项目(具有恒定高度的imageview和textview)。这个过程是在FragmentNews上完成的,当我单击该项目查看详细信息时,就有了另一个活动的意图。返回该活动(单击“上一步”)后,recyclerview滚动会减慢速度。我读了旧的答案,但他们帮不了我, 这是我的代码Recyclerview适配器代码Java 从活动返回后,RecyclerView滚动变慢,java,android,firebase,android-fragments,android-recyclerview,Java,Android,Firebase,Android Fragments,Android Recyclerview,我正在用Firebase Firestore编写新闻/文章应用程序。并且,我使用RecyclerView列出具有恒定高度的项目(具有恒定高度的imageview和textview)。这个过程是在FragmentNews上完成的,当我单击该项目查看详细信息时,就有了另一个活动的意图。返回该活动(单击“上一步”)后,recyclerview滚动会减慢速度。我读了旧的答案,但他们帮不了我, 这是我的代码Recyclerview适配器代码 package com.fabrika.gunes; impo
package com.fabrika.gunes;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Typeface;
import android.preference.PreferenceManager;
import android.text.Spannable;
import android.text.SpannableString;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.core.content.res.ResourcesCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.LinearSnapHelper;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
public class MyRecMultiAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements MySubMultiRecListAdapter.ItemClickListenerSub{
private Context context;
public static ArrayList<MakalaModel> list;
static ItemClickListener mClickListener;
SharedPreferences preferences;
String isWifiEnabled = "0", isOnlyWifi = "0";
public MyRecMultiAdapter(Context context, ArrayList<MakalaModel> list) {
this.context = context;
this.list = list;
preferences = PreferenceManager.getDefaultSharedPreferences(context);
isWifiEnabled = preferences.getString("wifi_enabled", "0");
isOnlyWifi = preferences.getString("wifi_only", "0");
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if(viewType==0){
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list_makala_vertical, parent, false);
NormMakalaHolder postHolder = new NormMakalaHolder(view);
return postHolder;
}
else if(viewType==1){
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.makala_rec_row, parent, false);
RecMakalaHolder authorHolder = new RecMakalaHolder(view);
return authorHolder;
}
return null;
}
public static ArrayList<MakalaModel> getList(){
return list;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
if(getItemViewType(position)==0){
MakalaModel postModel = list.get(position);
NormMakalaHolder postHolder = (NormMakalaHolder) holder;
postHolder.t_category.setText(postModel.getArticle_author());
String firstWord = postModel.getArticle_title();
String secondWord = postModel.getArticle_body().substring(0,150)+"...";
postHolder.t_view.setText(""+postModel.getArticle_view_number());
// Create a new spannable with the two strings
Spannable spannable = new SpannableString(firstWord+ ". " +secondWord);
// Set the custom typeface to span over a section of the spannable object
Typeface typeface1 = ResourcesCompat.getFont(context, R.font.nunitosans_extra_bold);
Typeface typeface2 = ResourcesCompat.getFont(context, R.font.nunitosans_light);
spannable.setSpan( new CustomTypefaceSpan("sans-serif", typeface1), 0, firstWord.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan( new CustomTypefaceSpan("sans-serif", typeface2), firstWord.length(), firstWord.length() + secondWord.length()+2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// Set the text of a textView with the spannable object
postHolder.t_title.setText( spannable );
String url = list.get(position).getArticle_img_url();
if(isOnlyWifi.equals("1") && isWifiEnabled.equals("0")){
url = "";
}
try {
Glide
.with(context)
.load(new URL(url))
.centerCrop()
.placeholder(R.drawable.mini_map)
.into(postHolder.i_image);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
else{
ArrayList<MakalaModel> listMakala = list.get(position).getListMakalaModel();
MySubMultiRecListAdapter adapter = new MySubMultiRecListAdapter(context, listMakala);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
((RecMakalaHolder) holder).recyclerView.setAdapter(adapter);
((RecMakalaHolder) holder).recyclerView.setLayoutManager(layoutManager);
// LinearSnapHelper linearSnapHelper = new SnapHelperOneByOne();
// linearSnapHelper.attachToRecyclerView(((RecMakalaHolder) holder).recyclerView);
adapter.setClickListenerSub(this);
}
}
@Override
public int getItemCount() {
return list.size();
}
@Override
public int getItemViewType(int position) {
return list.get(position).getViewType();
}
@Override
public void onItemClick(View view, int position, ArrayList<MakalaModel> list) {
Intent intent = new Intent(context, ActivityMakala.class);
intent.putExtra("id", list.get(position).getMakala_id());
intent.putExtra("type", "Articles");
intent.putExtra("category", list.get(position).getArticle_category());
intent.putExtra("date", list.get(position).getArticle_date());
intent.putExtra("title", list.get(position).getArticle_title());
intent.putExtra("author", list.get(position).getArticle_author());
intent.putExtra("body", list.get(position).getArticle_body());
intent.putExtra("img_url", list.get(position).getArticle_img_url());
context.startActivity(intent);
}
public class RecMakalaHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
RecyclerView recyclerView;
public RecMakalaHolder(@NonNull View itemView) {
super(itemView);
recyclerView = itemView.findViewById(R.id.recyclerView);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (MyRecMultiAdapter.mClickListener != null) mClickListener.onItemClick(v, getAdapterPosition(), MyRecMultiAdapter.getList());
}
}
public class NormMakalaHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
TextView t_category, t_title, t_view;
ImageView i_image;
public NormMakalaHolder(@NonNull View itemView) {
super(itemView);
t_category = itemView.findViewById(R.id.t_category);
t_title = itemView.findViewById(R.id.t_title);
i_image = itemView.findViewById(R.id.i_image);
t_view = itemView.findViewById(R.id.t_view);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (MyRecMultiAdapter.mClickListener != null) mClickListener.onItemClick(v, getAdapterPosition(), MyRecMultiAdapter.getList());
}
}
// parent activity will implement this method to respond to click events
public interface ItemClickListener {
void onItemClick(View view, int position, ArrayList<MakalaModel> list);
}
// allows clicks events to be caught
public void setClickListenerSub(ItemClickListener itemClickListener) {
this.mClickListener = itemClickListener;
}
}
package com.fabrika.gunes;
导入android.content.Context;
导入android.content.Intent;
导入android.content.SharedReferences;
导入android.graphics.Typeface;
导入android.preference.PreferenceManager;
导入android.text.Spannable;
导入android.text.SpannableString;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ImageView;
导入android.widget.TextView;
导入android.widget.Toast;
导入androidx.annotation.NonNull;
导入androidx.core.content.res.ResourcesCompat;
导入androidx.recyclerview.widget.LinearLayoutManager;
导入androidx.recyclerview.widget.LinearSnapHelper;
导入androidx.recyclerview.widget.recyclerview;
导入com.bumptech.glide.glide;
导入java.net.MalformedURLException;
导入java.net.URL;
导入java.util.ArrayList;
公共类MyRecMultiAdapter扩展了RecyclerView。适配器实现MySubMultiRecListAdapter.ItemClickListenerSub{
私人语境;
公共静态数组列表;
静态项ClickListener McClickListener;
共享参考偏好;
字符串isWifiEnabled=“0”,isOnlyWifi=“0”;
公共MyRecMultiAdapter(上下文,ArrayList列表){
this.context=上下文;
this.list=列表;
preferences=PreferenceManager.GetDefaultSharedReferences(上下文);
isWifiEnabled=preferences.getString(“wifi_已启用”,“0”);
isOnlyWifi=preferences.getString(“仅wifi_”、“0”);
}
@非空
@凌驾
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){
如果(viewType==0){
View View=LayoutInflater.from(parent.getContext()).flate(R.layout.item\u list\u makala\u vertical,parent,false);
NormMakalaHolder POSTHORDER=新NormMakalaHolder(视图);
归国邮递员;
}
else if(viewType==1){
View-View=LayoutInflater.from(parent.getContext()).flate(R.layout.makala_rec_row,parent,false);
RecMakalaHolder authorHolder=新的RecMakalaHolder(视图);
返回作者持有者;
}
返回null;
}
公共静态ArrayList getList(){
退货清单;
}
@凌驾
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder,int位置){
如果(getItemViewType(位置)==0){
MakalaModel postModel=list.get(位置);
NormMakalaHolder职位持有人=(NormMakalaHolder)持有人;
postHolder.t_category.setText(postModel.getArticle_author());
String firstWord=postModel.getArticle_title();
字符串secondWord=postModel.getArticle_body().子字符串(0150)+“…”;
postHolder.t_view.setText(“+postModel.getArticle_view_number());
//使用两个字符串创建一个新的Spanable
Spannable Spannable=新SpannableString(第一个字+“”+第二个字);
//将自定义字体设置为跨越可扩展对象的一部分
Typeface typeface1=ResourcesCompat.getFont(context,R.font.nunitosans\u extra\u bold);
Typeface-typeface2=ResourcesCompat.getFont(context,R.font.nunitosans\u light);
spannable.setSpan(新的自定义字体SPAN(“无衬线”,字体1),0,firstWord.length(),spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan(新的自定义字体SPAN(“无衬线”,字体2),firstWord.length(),firstWord.length()+secondWord.length()+2,spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
//使用spannable对象设置textView的文本
postHolder.t_title.setText(可扩展);
字符串url=list.get(position.getArticle_img_url();
如果(isOnlyWifi.equals(“1”)&isWifiEnabled.equals(“0”)){
url=“”;
}
试一试{
滑翔
.与(上下文)
.load(新URL(URL))
.centerCrop()
.占位符(R.可绘制的迷你地图)
.into(postHolder.i_图像);
}捕获(格式错误){
e、 printStackTrace();
}
}
否则{
ArrayList listMakala=list.get(position.getListMakalaModel();
MySubMultiRecListAdapter=新的MySubMultiRecListAdapter(上下文,listMakala);
RecyclerView.LayoutManager LayoutManager=新的LinearLayoutManager(上下文,LinearLayoutManager.HORIZONTAL,false);
((RecMakalaHolder)holder).recyclerView.setAdapter(适配器);
((RecMakalaHolder)holder.recyclerView.setLayoutManager(layoutManager);
//LinearSnapHelper LinearSnapHelper=新的SnapHelperOneByOne();
//linearSnapHelper.attachToRecyclerView(((RecmakalHolder)holder.recyclerView);
adapter.setClickListenerSub(此选项);
}
}
@凌驾
public int getItemCount(){
返回list.size();
}
@凌驾
public int getItemViewType(int位置){
return list.get(position.getViewType();
}
@凌驾
public void onItemClick(视图、整型位置、ArrayList列表){
意向意向=新意向(上下文,ActivityMakala.class);
intent.putExtra(“id”,list.get(position.getMakala_id());
意向。额外(“类型”、“条款”);
intent.putExtra(“category”,list.get(position.getArticle_category());
意向。额外(“日期”,l)
package com.fabrika.gunes;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.IntentCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.QuerySnapshot;
import com.google.firebase.storage.FirebaseStorage;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class FragmentMakala extends Fragment implements MyRecMultiAdapter.ItemClickListener{
View view;
Toolbar toolbar;
public static ArrayList<MakalaModel> makalaObjects;
RecyclerView recyclerView;
RecyclerView.LayoutManager layoutManager;
MainActivity activity;
MyRecMultiAdapter adapter;
FloatingActionButton buttonInsertArticle;
HashMap<String, Boolean> likedArticles;
FirebaseFirestore db;
FirebaseStorage storage = FirebaseStorage.getInstance();
SharedPreferences preferences;
String[] likedArray;
long article_number = 0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_makala, container, false);
prepareMe();
getMakala();
buttonInsertArticle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// for admin
// insertEmptyArticle();
}
});
return view;
}
private void insertEmptyArticle() {
// Create a new user with a first and last name
Map<String, Object> article = new HashMap<>();
article.put("article_author", "Serdaryň pikirleri");
article.put("article_body", "");
article.put("article_category", "durmuş");
article.put("article_date", "01.05.2021");
article.put("article_dislike_number", 0);
article.put("article_img_url", "");
article.put("article_like_number", 0);
article.put("article_title", "");
article.put("article_valid", true);
article.put("article_view_number", 0);
// Add a new document with a generated ID
db.collection("Articles")
.document(""+article_number)
.set(article);
article_number++;
Map<String, Object> article_num = new HashMap<>();
article_num.put("article_number", article_number);
db.collection("Articles")
.document("0")
.set(article_num);
}
private void prepareMe() {
// ((MainActivity)getActivity()).updateStatusBarColor("#ffffff");
setHasOptionsMenu(true);//Add this sentence to the menu
toolbar = view.findViewById(R.id.toolbar);
((AppCompatActivity) getActivity()).setSupportActionBar(toolbar);
((AppCompatActivity) getActivity()).getSupportActionBar().setElevation(0);
toolbar.setTitle("Iň täze makalalar");
toolbar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(activity, "refresh", Toast.LENGTH_SHORT).show();
getMakala();
}
});
buttonInsertArticle = view.findViewById(R.id.buttonInsertNewArticle);
preferences = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
activity = (MainActivity) getActivity();
recyclerView = view.findViewById(R.id.recyclerView);
makalaObjects = new ArrayList<>();
isWifiEnabled();
db = FirebaseFirestore.getInstance();
layoutManager = new LinearLayoutManager(view.getContext(), LinearLayoutManager.VERTICAL, false);
adapter = new MyRecMultiAdapter(view.getContext(), makalaObjects);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(layoutManager);
adapter.setClickListenerSub(this);
likedArticles = new HashMap<>();
String ids = preferences.getString("liked_articles","");
likedArray = ids.split(" ");
recyclerView.setHasFixedSize(true);
recyclerView.setItemViewCacheSize(2);
recyclerView.setDrawingCacheEnabled(true);
recyclerView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
// adapter.setHasStableIds(true);
}
public void initScrollView(){
if(makalaObjects.size()>3){
ArrayList<MakalaModel> scrollList = new ArrayList<>();
String ids = preferences.getString("liked_articles","");
likedArray = ids.split(" ");
for(int i=likedArray.length-1;i>=0;i--){
for(int j=makalaObjects.size()-1;j>=0;j--){
if(likedArray[i].equals(makalaObjects.get(j).getMakala_id())){
scrollList.add(makalaObjects.get(j));
}
}
}
MakalaModel m = new MakalaModel();
m.setListMakalaModel(scrollList);
m.setViewType(1);
makalaObjects.set(3,m);
}
}
@Override
public void onItemClick(View view, int position, ArrayList<MakalaModel> list) {
Intent intent = new Intent(activity.getApplicationContext(), ActivityMakala.class);
intent.putExtra("type", "Articles");
intent.putExtra("position", position);
intent.putExtra("id", makalaObjects.get(position).getMakala_id());
intent.putExtra("category", makalaObjects.get(position).getArticle_category());
intent.putExtra("date", makalaObjects.get(position).getArticle_date());
intent.putExtra("title", makalaObjects.get(position).getArticle_title());
intent.putExtra("author", makalaObjects.get(position).getArticle_author());
intent.putExtra("body", makalaObjects.get(position).getArticle_body());
intent.putExtra("img_url", makalaObjects.get(position).getArticle_img_url());
// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
startActivity(intent);
}
private void getMakala() {
makalaObjects.clear();
// adapter = null;
// activity.llprogress.setVisibility(View.VISIBLE);
db.collection("Articles").get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
if(!queryDocumentSnapshots.isEmpty()){
List<DocumentSnapshot> list = queryDocumentSnapshots.getDocuments();
for(DocumentSnapshot d : list){
MakalaModel makalaModel = d.toObject(MakalaModel.class);
makalaModel.setMakala_id(d.getId());
makalaModel.setViewType(0);
if(!makalaModel.getMakala_id().equals("0"))
makalaObjects.add(makalaModel);
else{
article_number = makalaModel.getArticle_number();
}
}
// Collections.reverse(makalaObjects);
makalaObjects.sort((schedule1, schedule2)->{
int returnValue = 0;
if(Integer.parseInt(schedule1.getMakala_id()) > Integer.parseInt(schedule2.getMakala_id())) return -1;
else if(Integer.parseInt(schedule1.getMakala_id()) < Integer.parseInt(schedule2.getMakala_id())) return 1;
return returnValue;
});
ArrayList<MakalaModel> scrollList = new ArrayList<>();
for(int i=likedArray.length-1;i>=0;i--){
for(int j=makalaObjects.size()-1;j>=0;j--){
if(likedArray[i].equals(makalaObjects.get(j).getMakala_id())){
scrollList.add(makalaObjects.get(j));
}
}
}
MakalaModel m = new MakalaModel();
m.setListMakalaModel(scrollList);
m.setViewType(1);
makalaObjects.add(3,m);
adapter.notifyDataSetChanged();
// adapter = new MyRecMultiAdapter(activity.getApplicationContext(), makalaObjects);
// recyclerView.setAdapter(adapter);
activity.llprogress.setVisibility(View.GONE);
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(activity, "error", Toast.LENGTH_SHORT).show();
activity.llprogress.setVisibility(View.GONE);
}});
}
@Override
public void onResume() {
super.onResume();
isWifiEnabled();
initScrollView();
adapter.notifyDataSetChanged();
}
public boolean isWifiEnabled(){
ConnectivityManager cm = (ConnectivityManager) activity.getApplicationContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiNetwork != null && wifiNetwork.isConnected()) {
SharedPreferences.Editor editor = preferences.edit();
editor.putString("wifi_enabled", "1");
editor.commit();
return true;
}
SharedPreferences.Editor editor = preferences.edit();
editor.putString("wifi_enabled", "0");
editor.commit();
return false;
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="400dp"
android:paddingVertical="5dp"
android:paddingHorizontal="15dp">
<TextView
android:id="@+id/t_category"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="WHAT TO COOK"
android:textSize="14sp"
android:fontFamily="@font/nunitosans_black"
android:textStyle="bold"
android:textColor="@color/colorBlack"/>
<TextView
android:id="@+id/t_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/colorBlack"
android:fontFamily="@font/verdana"
android:textSize="18sp"
android:layout_marginTop="5dp"
android:layout_below="@+id/t_category"
android:text="New Recipes for Your Rotation Add vegan tantanment and roasted rhubarb cobbler to your weekend cooking plans."/>
<ImageView
android:id="@+id/i_image"
android:layout_width="match_parent"
android:layout_height="250dp"
android:src="@drawable/mini_map"
android:scaleType="centerCrop"
android:layout_marginTop="7dp"
android:layout_below="@+id/t_title"/>
<RelativeLayout
android:id="@+id/r_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/i_image">
<TextView
android:id="@+id/t_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="27.04.2021"
android:textSize="12sp"
android:fontFamily="@font/nunitosans_light"
android:textStyle="bold"
android:alpha="0.6"
android:layout_marginTop="5dp"
android:textColor="@color/colorBlack"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/t_view"
android:layout_centerVertical="true"
android:layout_marginRight="5dp"
android:src="@drawable/ic_view"/>
<TextView
android:id="@+id/t_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="24"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:textSize="12sp"
android:fontFamily="@font/nunitosans_bold"
android:textStyle="bold"
android:layout_marginTop="5dp"
android:textColor="@color/colorBlack"/>
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@color/colorBlack"
android:layout_below="@+id/r_bottom"
android:layout_marginTop="15dp"/>
</RelativeLayout>
Glide.with(context).load(new URL(url))
.thumbnail(0.5f)
.centerCrop()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(postHolder.i_image);