آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

به هم ریختگی ایتم ها در اسکرول سریع ریسایکرویو

125847  9 سال پیش  9 سال پیش
+1 0

سلام

من یه سری ایتم ها رو که شامل عکس و متن هست از سرور به صورت جیسون می گیرم و در ریسایکرویو نمایش می دم مشکل اینجاس که سریع اسکرول میشه ایتم ها به هم میرزه.

مشکل از کجاس

کد بخشی که اسکرول میشه 

  public  class home_agahi3_server  extends AsyncTask<String,Void,String> {

private Context c;
private Activity ac;

private String state_id;
private String lim;
private RecyclerView rec;
AgahiRecyclerAdapter adp;


public home_agahi3_server(Context c,Activity ac,String lim,AgahiRecyclerAdapter adp
){
this.c=c;
this.ac=ac;

this.lim=lim;
this.adp=adp;



}
long startTime;

@Override
protected void onPreExecute() {
super.onPreExecute();
//swipeContainer.setRefreshing(false);
// agahi_recycler.setVisibility(View.INVISIBLE);
// rotat2.start();
// agahi_recycler.setOnScrollListener(null);





}

@Override
protected String doInBackground(String... strings) {


try {
String data = URLEncoder.encode("get_post", "UTF-8") + "=" + URLEncoder.encode("true", "UTF-8");
// data+="&"+ URLEncoder.encode("state_id", "UTF-8")+"="+URLEncoder.encode(state_id,"UTF-8");
data += "&" + URLEncoder.encode("lim", "UTF-8") + "=" + URLEncoder.encode(lim, "UTF-8");

//Thread.sleep(10);
// SystemClock.sleep(1000);


//
URL url = new URL(MainActivity.url + "post.php");
URLConnection connect = url.openConnection();
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();

errorMessage = urlc.getResponseCode() == 200 ? "Successful Connection" : "Internet Error";
if (urlc.getResponseCode() == 200) {

connect.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(connect.getOutputStream());
wr.write(data);
wr.flush();
wr.close();

//
InputStreamReader in = new InputStreamReader(connect.getInputStream());
BufferedReader reader = new BufferedReader(in);
String line = "";
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null) {
sb.append(line);

}
return sb.toString();
}


} catch (SocketTimeoutException e) {
errorMessage = "Connection Error1";
return "err1";

} catch (MalformedURLException e) {
errorMessage = "Connection Error2";
return "err1";

} catch (IOException e) {
Log.e("dddgg2", "dddgg2");
errorMessage = "Connection Error3";
return "err1";

}

return "";


}

@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
lay2.setVisibility(View.GONE);
lay2.setBackgroundResource(R.drawable.bg_cadr_around);

if(s.equals("err1")){
Toast.makeText(c,"err",Toast.LENGTH_SHORT).show();
lay2.setVisibility(View.GONE);
lay2.setBackgroundResource(R.drawable.bg_cadr_around);
net=0;

scroll=0;
}else {

// rotat2.stop();
lay2.setVisibility(View.GONE);
lay2.setBackgroundResource(R.drawable.bg_cadr_around);
// nDialog.dismiss();
nDialog = null;


// agahi_recycler.setVisibility(View.VISIBLE);
JSONArray arr = null;
JSONObject ob = null;

//Toast.makeText(c,scroll+"",Toast.LENGTH_SHORT).show();
scroll = 0;
try {
arr = new JSONArray(s);
for (int i = 0; i < arr.length(); i++) {

ob = arr.getJSONObject(i);

_name.add(ob.getString("title"));
_img.add(ob.getString("img"));
_price.add(ob.getString("price"));
_menu_order.add(ob.getString("order"));
_id.add(ob.getString("id"));
// _body.add(ob.getString("content"));
_time.add(ob.getString("time"));

/*_imgs.add(ob.getString("imgs"));

_color.add(ob.getString("color"));
_size.add(ob.getString("size"));
_shenas.add(ob.getString("shenas"));

_expire.add(ob.getString("expire"));
_visit_today.add(ob.getString("todayvisit"));
_visit_total.add(ob.getString("totalvisit"));
_mobile.add(ob.getString("mobile"));
_cat.add(ob.getString("cat"));
_user_id.add(ob.getString("user"));

_link.add(ob.getString("link"));*/


}

adapter.notifyItemRangeInserted(limit,_time.size());


net = 0;



} catch (Exception e) {
//Toast.makeText(c,"errors in json",Toast.LENGTH_SHORT).show();
}
}

}
}
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .