我创建了一个包含不同类型子视图的社交帖子回收站视图。 每个孩子多个layout.recyclerview工作正常回收者视图滚动的问题并不顺利 我们的代码
@Override
public int getItemViewType(int position) {
if (arrSocial_Post_Model.get(position) != null) {
Social_Post_Model objSocial_Post_Model = arrSocial_Post_Model.get(position);
if (objSocial_Post_Model.getPost_type().equalsIgnoreCase("1"))
return VIEW_FRIEND_SUGGESTION;
else if (objSocial_Post_Model.getPost_type().equalsIgnoreCase("special_post") ||
objSocial_Post_Model.getPost_type().equalsIgnoreCase("2") ||
objSocial_Post_Model.getPost_type().equalsIgnoreCase("3"))
return VIEW_SPECIAL_POST;
else if (objSocial_Post_Model.getPost_type().equalsIgnoreCase("4") ||
objSocial_Post_Model.getPost_type().equalsIgnoreCase("5") ||
objSocial_Post_Model.getPost_type().equalsIgnoreCase("6"))
return VIEW_INFLUNENCER_POST;
else if (objSocial_Post_Model.getPost_type().equalsIgnoreCase("7") ||
objSocial_Post_Model.getPost_type().equalsIgnoreCase("8") ||
objSocial_Post_Model.getPost_type().equalsIgnoreCase("9") ||
objSocial_Post_Model.getPost_type().equalsIgnoreCase("10") ||
objSocial_Post_Model.getPost_type().equalsIgnoreCase("11") ||
objSocial_Post_Model.getPost_type().equalsIgnoreCase("12") ||
objSocial_Post_Model.getPost_type().equalsIgnoreCase("13") ||
objSocial_Post_Model.getPost_type().equalsIgnoreCase("14") ||
objSocial_Post_Model.getPost_type().equalsIgnoreCase("15"))
return VIEW_PURCHASE_SUGGESION;
else
return VIEW_PROG;
} else
return VIEW_PROG;
}
查看持有人
public static class OtherViewHolder extends RecyclerView.ViewHolder {
public LinearLayout layout_share_influencer;
public de.hdodenhof.circleimageview.CircleImageView img_share_user;
public TextView textview_share_username;
//social and private top layout
public View social_private_top_layout;
public LinearLayout layout_search_edit;
public ImageView imageView_notification;
public de.hdodenhof.circleimageview.CircleImageView profile_image_socialpost;
public EditText frnd_search_socialpost;
public RelativeLayout layout_notification_socialpost;
public TextView textView_notification_count_value_socialpost;
public LinearLayout lay_post_influance_socialpost, lay_share_purchase_socialpost, lay_ask_suggestion_socialpost;
//Profile Top Layout
public View profileTopLayout;
public de.hdodenhof.circleimageview.CircleImageView profile_image;
public EditText frnd_search;
public RelativeLayout layout_notification;
public TextView textView_notification_count_value;
public ImageView imageView_profile_cover;
public TextView textview_profile_name;
public ImageView image_update_profile;
public LinearLayout layout_frined, layout_followers;
public TextView textView_friends_total, textView_followers_total;
public ImageView img_lock_friends, img_lock_follow;
public TextView textView_upgrade;
public LinearLayout layout_create_post, layout_Addfriends_follow;
public LinearLayout lay_post_influance, lay_share_purchase, lay_ask_suggestion;
public TextView textview_add_friend, textView_follow;
public ImageView img_follow_done, img_friend_done;
/////////
public LinearLayout lay_post_top;
public ImageView imageview_edit_post;
public TextView textview_post_Datetime;
public de.hdodenhof.circleimageview.CircleImageView img_Posted_user;
public ImageView tag_friend_image;
public ImageView img_post_type;
public LinearLayout layout_tag_friend;
public TextView textview_post_other_detail;
public TextView textview_Tagged_friend;
public TextView textview_posttype_detail;
//other
public LinearLayout layout_from_to_destination;
public TextView textview_service_from;
public TextView textview_service_destination;
public TextView post_detail, post_detail_deal_coupon;
public ImageView img_service_icon;
public ImageView image_copy;
public TextView textview_earned_cashback;
public ImageView img_posted_product;
public TextView textView_sellername;
public ImageView seller_image;
//rating bar
public LinearLayout layout_rating;
public TextView textview_rating_value;
public RatingBar ratingbar_star;
public TextView textView_price;
public Button btn_gotodeal;
public TextView textview_recommended_seller;
// like comment share congrates and other
public ImageView image_congrates, image_buy, image_notbuy, image_like, image_share_post;
public LinearLayout post_bottom_Layout_purchase, post_bottom_Layout_suggestion, postbottom_layout_for_share;
public TextView txt_congrates_count;
public TextView txt_comments_count_p;
public TextView txt_buy_count;
public TextView txt_notbuy_count;
public TextView txt_comments_count_s;
public TextView txt_like_count;
public TextView txt_comments_count_share;
public TextView txt_Share_count_share;
public LinearLayout layout_purchase_comment_click;
public LinearLayout layout_suggestion_comment_click;
public LinearLayout layout_share_comment_click;
private LinearLayout layout_congratulate;
private LinearLayout layout_sug_buy;
private LinearLayout layout_sug_Notbuy;
private LinearLayout layout_Like;
private LinearLayout layout_share;
public TextView textview_congratulate;
public TextView textview_sug_buy;
public TextView textview_sug_not_buy;
public TextView textview_Like;
public TextView textview_Share;
private TextView textview_comment_in_share;
private TextView textview_comment_in_suggestion;
private TextView textview_comment_purchase;
//*Child content*//*
public de.hdodenhof.circleimageview.CircleImageView img_comment_user1;
public TextView textview_commented_username1;
public TextView comment_text1;
public de.hdodenhof.circleimageview.CircleImageView img_comment_user2;
public TextView textview_commented_username2;
public TextView comment_text2;
public LinearLayout layout_post_child;
public LinearLayout layout_post_child_one;
public OtherViewHolder(View itemView) {
super(itemView);
//social and private top layout
social_private_top_layout = itemView.findViewById(R.id.social_private_top_layout);
layout_search_edit = (LinearLayout) social_private_top_layout.findViewById(R.id.layout_search_edit);
imageView_notification = (ImageView) social_private_top_layout.findViewById(R.id.imageView_notification);
profile_image_socialpost = (de.hdodenhof.circleimageview.CircleImageView) social_private_top_layout.findViewById(R.id.profile_image);
frnd_search_socialpost = (EditText) social_private_top_layout.findViewById(R.id.frnd_search);
layout_notification_socialpost = (RelativeLayout) social_private_top_layout.findViewById(R.id.layout_notification);
textView_notification_count_value_socialpost = (TextView) social_private_top_layout.findViewById(R.id.textView_notification_count_value);
lay_post_influance_socialpost = (LinearLayout) social_private_top_layout.findViewById(R.id.lay_post_influance);
lay_share_purchase_socialpost = (LinearLayout) social_private_top_layout.findViewById(R.id.lay_share_purchase);
lay_ask_suggestion_socialpost = (LinearLayout) social_private_top_layout.findViewById(R.id.lay_ask_suggestion);
//profile top layout
profileTopLayout = itemView.findViewById(R.id.profile_layout);
profile_image = (de.hdodenhof.circleimageview.CircleImageView) profileTopLayout.findViewById(R.id.profile_image);
frnd_search = (EditText) profileTopLayout.findViewById(R.id.frnd_search);
layout_notification = (RelativeLayout) profileTopLayout.findViewById(R.id.layout_notification);
textView_notification_count_value = (TextView) profileTopLayout.findViewById(R.id.textView_notification_count_value);
imageView_profile_cover = (ImageView) profileTopLayout.findViewById(R.id.imageView_profile_cover);
image_update_profile = (ImageView) profileTopLayout.findViewById(R.id.image_update_profile);
textview_profile_name = (TextView) profileTopLayout.findViewById(R.id.textview_profile_name);
layout_frined = (LinearLayout) profileTopLayout.findViewById(R.id.layout_frined);
layout_followers = (LinearLayout) profileTopLayout.findViewById(R.id.layout_followers);
textView_friends_total = (TextView) profileTopLayout.findViewById(R.id.textView_friends_total);
textView_followers_total = (TextView) profileTopLayout.findViewById(R.id.textView_followers_total);
img_lock_friends = (ImageView) profileTopLayout.findViewById(R.id.img_lock_friends);
img_lock_follow = (ImageView) profileTopLayout.findViewById(R.id.img_lock_follow);
textView_upgrade = (TextView) profileTopLayout.findViewById(R.id.textView_upgrade);
layout_create_post = (LinearLayout) profileTopLayout.findViewById(R.id.layout_create_post);
layout_Addfriends_follow = (LinearLayout) profileTopLayout.findViewById(R.id.layout_Addfriends_follow);
lay_post_influance = (LinearLayout) profileTopLayout.findViewById(R.id.lay_post_influance);
lay_share_purchase = (LinearLayout) profileTopLayout.findViewById(R.id.lay_share_purchase);
lay_ask_suggestion = (LinearLayout) profileTopLayout.findViewById(R.id.lay_ask_suggestion);
textview_add_friend = (TextView) profileTopLayout.findViewById(R.id.textview_add_friend);
textView_follow = (TextView) profileTopLayout.findViewById(R.id.textView_follow);
img_follow_done = (ImageView) profileTopLayout.findViewById(R.id.img_follow_done);
img_friend_done = (ImageView) profileTopLayout.findViewById(R.id.img_friend_done);
/////influencer share
layout_share_influencer = (LinearLayout) itemView.findViewById(R.id.layout_share_influencer);
img_share_user = (de.hdodenhof.circleimageview.CircleImageView) itemView.findViewById(R.id.img_share_user);
textview_share_username = (TextView) itemView.findViewById(R.id.textview_share_username);
////////////
lay_post_top = (LinearLayout) itemView.findViewById(R.id.lay_post_top);
tag_friend_image = (ImageView) itemView.findViewById(R.id.tag_friend_image);
img_post_type = (ImageView) itemView.findViewById(R.id.img_post_type);
textview_post_other_detail = (TextView) itemView.findViewById(R.id.textview_post_other_detail);
textview_post_Datetime = (TextView) itemView.findViewById(R.id.textview_post_Datetime);
imageview_edit_post = (ImageView) itemView.findViewById(R.id.imageview_edit_post);
img_Posted_user = (de.hdodenhof.circleimageview.CircleImageView) itemView.findViewById(R.id.img_Posted_user);
layout_tag_friend = (LinearLayout) itemView.findViewById(R.id.layout_tag_friend);
textview_Tagged_friend = (TextView) itemView.findViewById(R.id.textview_Tagged_friend);
textview_posttype_detail = (TextView) itemView.findViewById(R.id.textview_posttype_detail);
//other
layout_from_to_destination = (LinearLayout) itemView.findViewById(R.id.layout_from_to_destination);
textview_service_from = (TextView) itemView.findViewById(R.id.textview_service_from);
textview_service_destination = (TextView) itemView.findViewById(R.id.textview_service_destination);
post_detail = (TextView) itemView.findViewById(R.id.post_detail);
post_detail_deal_coupon = (TextView) itemView.findViewById(R.id.post_detail_deal_coupon);
img_service_icon = (ImageView) itemView.findViewById(R.id.img_service_icon);
image_copy = (ImageView) itemView.findViewById(R.id.image_copy);
textview_earned_cashback = (TextView) itemView.findViewById(R.id.textview_earned_cashback);
img_posted_product = (ImageView) itemView.findViewById(R.id.img_posted_product);
textView_sellername = (TextView) itemView.findViewById(R.id.textView_sellername);
seller_image = (ImageView) itemView.findViewById(R.id.seller_image);
//rating bar
layout_rating = (LinearLayout) itemView.findViewById(R.id.layout_rating);
textview_rating_value = (TextView) itemView.findViewById(R.id.textview_rating_value);
ratingbar_star = (RatingBar) itemView.findViewById(R.id.ratingbar_star);
textView_price = (TextView) itemView.findViewById(R.id.textView_price);
btn_gotodeal = (Button) itemView.findViewById(R.id.btn_Gotodeal);
textview_recommended_seller = (TextView) itemView.findViewById(R.id.textview_recommended_seller);
// like comment share congrates and other
image_congrates = (ImageView) itemView.findViewById(R.id.image_congrates);
image_buy = (ImageView) itemView.findViewById(R.id.image_buy);
image_notbuy = (ImageView) itemView.findViewById(R.id.image_notbuy);
image_like = (ImageView) itemView.findViewById(R.id.image_like);
image_share_post = (ImageView) itemView.findViewById(R.id.image_share_post);
txt_comments_count_p = (TextView) itemView.findViewById(R.id.txt_comments_count_p);
txt_congrates_count = (TextView) itemView.findViewById(R.id.txt_congrates_count);
txt_buy_count = (TextView) itemView.findViewById(R.id.txt_buy_count);
txt_notbuy_count = (TextView) itemView.findViewById(R.id.txt_notbuy_count);
txt_comments_count_s = (TextView) itemView.findViewById(R.id.txt_comments_count_s);
txt_like_count = (TextView) itemView.findViewById(R.id.txt_like_count);
txt_comments_count_share = (TextView) itemView.findViewById(R.id.txt_comments_count_share);
txt_Share_count_share = (TextView) itemView.findViewById(R.id.txt_Share_count_share);
textview_congratulate = (TextView) itemView.findViewById(R.id.textview_congratulate);
textview_sug_buy = (TextView) itemView.findViewById(R.id.textview_sug_buy);
textview_sug_not_buy = (TextView) itemView.findViewById(R.id.textview_sug_not_buy);
textview_Like = (TextView) itemView.findViewById(R.id.textview_Like);
textview_Share = (TextView) itemView.findViewById(R.id.textview_Share);
textview_comment_in_share = (TextView) itemView.findViewById(R.id.textview_comment_in_share);
textview_comment_in_suggestion = (TextView) itemView.findViewById(R.id.textview_comment_in_suggestion);
textview_comment_purchase = (TextView) itemView.findViewById(R.id.textview_comment_purchase);
post_bottom_Layout_purchase = (LinearLayout) itemView.findViewById(R.id.postbottom_layout_for_purchase);
post_bottom_Layout_suggestion = (LinearLayout) itemView.findViewById(R.id.postbottom_layout_for_suggestion);
postbottom_layout_for_share = (LinearLayout) itemView.findViewById(R.id.postbottom_layout_for_share);
layout_purchase_comment_click = (LinearLayout) itemView.findViewById(R.id.purchase_comment_click);
layout_suggestion_comment_click = (LinearLayout) itemView.findViewById(R.id.suggestion_comment_click);
layout_share_comment_click = (LinearLayout) itemView.findViewById(R.id.share_comment_click);
layout_congratulate = (LinearLayout) itemView.findViewById(R.id.layout_cong);
layout_sug_buy = (LinearLayout) itemView.findViewById(R.id.layout_buy);
layout_sug_Notbuy = (LinearLayout) itemView.findViewById(R.id.layout_Notbuy);
layout_Like = (LinearLayout) itemView.findViewById(R.id.share_Like_click);
layout_share = (LinearLayout) itemView.findViewById(R.id.share_share_click);
//*child content*//*
img_comment_user1 = (de.hdodenhof.circleimageview.CircleImageView) itemView.findViewById(R.id.image_commented_user1);
textview_commented_username1 = (TextView) itemView.findViewById(R.id.textview_commented_username1);
comment_text1 = (TextView) itemView.findViewById(R.id.comment_text1);
img_comment_user2 = (de.hdodenhof.circleimageview.CircleImageView) itemView.findViewById(R.id.image_commented_user2);
textview_commented_username2 = (TextView) itemView.findViewById(R.id.textview_commented_username2);
comment_text2 = (TextView) itemView.findViewById(R.id.comment_text2);
layout_post_child = (LinearLayout) itemView.findViewById(R.id.layout_post_child);
layout_post_child_one = (LinearLayout) itemView.findViewById(R.id.layout_post_child_one);
}
}
我们使用与上述观看者相同的3个观看者
答案 0 :(得分:1)
我知道,我参加派对的时间有点晚了,但我很有信心你的问题是因为你正在使用 de.hdodenhof.circleimageview.CircleImageView 。
在列表中使用此自定义ImageView时,性能似乎非常差。我会建议一种将图像转换为圆形的替代方法。
答案 1 :(得分:0)
尝试以下解决方案
优化用于校正尺寸的图像。 ImageViews中超大的位图会占用大量内存。 This link is helpful to optimise images
如果步骤1未解决您的问题,请为视图或活动启用硬件加速。
android:layerType="hardware"