Իմ ցուցակում կա ավելի քան 200 ապրանք: RecyclerView-ը պարբերաբար թարմացվում է (յուրաքանչյուր 10 վայրկյանը մեկ): RecyclerView-ը մի քանի վայրկյանով արգելափակում է UI շարանը թարմացումների ընթացքում: Ես օգտագործում եմ notifyDataSetChanged
մեթոդը թարմացման վերամշակման դիտման համար: Կա՞ սառցակալումը կանխելու այլ միջոց: Ի դեպ, ես չեմ ուզում օգտագործել էջադրում:
Այս մեթոդը գործում է 10 վայրկյանը մեկ.
public void refreshAssetList(List<Asset> newAssetList){
recyclerViewAdapter.setAssetList(newAssetList);
recyclerViewAdapter.notifyDataSetChanged();
}
RecyclerViewAdapter դաս.
public class AssetListRecyclerViewAdapter extends RecyclerView.Adapter<AssetListRecyclerViewAdapter.BaseViewHolder> {
private List<Asset> assetList;
Context context;
public AssetListRecyclerViewAdapter(List<Asset> assetList, Context context) {
this.assetList = assetList;
this.context = context;
}
public void setAssetList(List<Asset> assetList) {
this.assetList = assetList;
}
@Override
public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_asset, null);
return new DetailViewHolder(itemLayoutView);
}
@Override
public void onBindViewHolder(BaseViewHolder holder, int position) {
Asset asset = assetList.get(position);
Last last = asset.getLast();
if (holder.getItemViewType() == TYPE_DETAIL) {
DetailViewHolder mHolder = (DetailViewHolder) holder;
mHolder.dateTextView.setText(last.getDate());
mHolder.brandTextView.setText(asset.getMc());
}
}
class DetailViewHolder extends BaseViewHolder {
@Bind(R.id.brandTextV)
TextView brandTextView;
@Bind(R.id.dateTextV)
TextView dateTextView;
DetailViewHolder(View itemLayoutView) {
super(itemLayoutView);
ButterKnife.bind(this, itemLayoutView);
}
}
}
List<Asset>
-ը նորով: Այս դեպքում դուք կթարմացնեք միայն տեսանելի տարրերը, և երբ ոլորեք վերև կամ վար, ձեր տեսքը կթարմացվի ըստ թարմացված ցանկի 25.04.2017