You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Mar 16, 2024. It is now read-only.
No adapter attached; skipping layout issue inside fragment. My recyclerView is empty while using StickyHeaderLayoutManager. Working correctly with LinearLayoutManager.
adapter = new StockListAdapter(getActivity(),productStockList,width,height); stockRecyclerView.setAdapter(adapter); stockRecyclerView.setLayoutManager(new StickyHeaderLayoutManager());
public class StockListAdapter extends SectioningAdapter {
private Context context;
private ArrayList<ProductStockObj> dataList = new ArrayList<>();
private int width, height;
ArrayList<Section> sectionsList = new ArrayList<>();
private class Section {
String categoryName;
ArrayList<ProductStockObj> productsList = new ArrayList<>();
}
public class HeaderViewHolder extends SectioningAdapter.HeaderViewHolder {
TextView listHeaderTextView;
public HeaderViewHolder(View itemView) {
super(itemView);
listHeaderTextView = (TextView) itemView.findViewById(R.id.listHeaderTextView);
}
}
public class ItemViewHolder extends SectioningAdapter.ItemViewHolder {
LinearLayout rowMainLayout;
ImageView productImageView;
TextView productTextView;
LinearLayout stockSaleLayout;
TextView stockTextView;
TextView salesTextView;
public ItemViewHolder(View itemView) {
super(itemView);
rowMainLayout = (LinearLayout)itemView.findViewById( R.id.rowMainLayout );
productImageView = (ImageView)itemView.findViewById( R.id.productImageView );
productTextView = (TextView)itemView.findViewById( R.id.productTextView );
stockSaleLayout = (LinearLayout)itemView.findViewById( R.id.stockSaleLayout );
stockTextView = (TextView)itemView.findViewById( R.id.stockTextView );
salesTextView = (TextView)itemView.findViewById( R.id.salesTextView );
int rowMainLayLeftRightPadding = (int) (width * 0.03225);//0.3
int rowMainLayTopBottomPadding = (int) (width * 0.01290);//0.2
int productImageRightMargin = (int) (width * 0.04301);//0.4
int productTextRightMargin = (int) (width * 0.08602);//0.8
rowMainLayout.setPadding(rowMainLayLeftRightPadding,rowMainLayTopBottomPadding,
rowMainLayLeftRightPadding,rowMainLayTopBottomPadding);
LinearLayout.LayoutParams productImage = (LinearLayout.LayoutParams) productImageView.getLayoutParams();
productImage.setMargins(0,0,productImageRightMargin,0);
productImageView.setLayoutParams(productImage);
LinearLayout.LayoutParams productText = (LinearLayout.LayoutParams) productTextView.getLayoutParams();
productText.setMargins(0,0,productTextRightMargin,0);
productTextView.setLayoutParams(productText);
}
}
public StockListAdapter(Context context, ArrayList<ProductStockObj> dataList, int width, int height) {
this.context = context;
this.dataList = dataList;
this.width = width;
this.height = height;
}
public ArrayList<ProductStockObj> getProductStockList() {
return dataList;
}
public void setProductStockList(ArrayList<ProductStockObj> dataList) {
this.dataList = dataList;
sectionsList.clear();
Section currentSection = null;
if(dataList.size() > 0) {
int sectionCategoryType = 0;
for (int i = 0; i < dataList.size(); i++) {
ProductStockObj productStockObj = dataList.get(i);
int categoryType = productStockObj.getCategoryType();
if(sectionCategoryType != categoryType) {
if (currentSection != null) {
sectionsList.add(currentSection);
}
currentSection = new Section();
sectionCategoryType = productStockObj.getCategoryType();
switch (sectionCategoryType) {
case 1:
currentSection.categoryName = context.getResources().getString(R.string.breads);
break;
case 2:
currentSection.categoryName = context.getResources().getString(R.string.buns);
break;
case 3:
currentSection.categoryName = context.getResources().getString(R.string.cookies);
break;
}
currentSection.productsList.add(productStockObj);
} else if (currentSection != null) {
currentSection.productsList.add(productStockObj);
}
}
}
sectionsList.add(currentSection);
notifyAllSectionsDataSetChanged();
}
@Override
public int getNumberOfSections() {
return sectionsList.size();
}
@Override
public int getNumberOfItemsInSection(int sectionIndex) {
return sectionsList.get(sectionIndex).productsList.size();
}
@Override
public boolean doesSectionHaveHeader(int sectionIndex) {
return true;
}
@Override
public boolean doesSectionHaveFooter(int sectionIndex) {
return false;
}
@Override
public SectioningAdapter.HeaderViewHolder onCreateHeaderViewHolder(ViewGroup parent, int headerType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View v = inflater.inflate(R.layout.list_header_layout, parent, false);
return new HeaderViewHolder(v);
}
@Override
public SectioningAdapter.ItemViewHolder onCreateItemViewHolder(ViewGroup parent, int itemType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View v = inflater.inflate(R.layout.stock_list_row, parent, false);
return new ItemViewHolder(v);
}
@Override
public void onBindHeaderViewHolder(SectioningAdapter.HeaderViewHolder viewHolder, int sectionIndex, int headerType) {
Section currentSection = (Section) sectionsList.get(sectionIndex);
HeaderViewHolder hvh = (HeaderViewHolder) viewHolder;
hvh.listHeaderTextView.setText(currentSection.categoryName);
}
@Override
public void onBindItemViewHolder(SectioningAdapter.ItemViewHolder viewHolder, int sectionIndex, int itemIndex, int itemType) {
ItemViewHolder ivh = (ItemViewHolder) viewHolder;
Section currentSection = sectionsList.get(sectionIndex);
ArrayList<ProductStockObj> productsList = currentSection.productsList;
ProductStockObj productStockObj = productsList.get(itemIndex);
int categoryType = productStockObj.getCategoryType();
switch (categoryType) {
case 1:
ivh.productImageView.setImageResource(R.drawable.ic_bread_circle);
break;
case 2:
ivh.productImageView.setImageResource(R.drawable.ic_buns_circle);
break;
case 3:
ivh.productImageView.setImageResource(R.drawable.ic_cookies_circle);
break;
}
ivh.productTextView.setText("" + productStockObj.getProductName());
ivh.stockTextView.setText("" + productStockObj.getTotalStockCount());
ivh.salesTextView.setText("" + productStockObj.getTotalSoldCount());
}
}
The text was updated successfully, but these errors were encountered:
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
No adapter attached; skipping layout issue inside fragment. My recyclerView is empty while using StickyHeaderLayoutManager. Working correctly with LinearLayoutManager.
adapter = new StockListAdapter(getActivity(),productStockList,width,height); stockRecyclerView.setAdapter(adapter); stockRecyclerView.setLayoutManager(new StickyHeaderLayoutManager());
The text was updated successfully, but these errors were encountered: