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
Hello!
I am having this exception every time I try to scroll back to the top. Is this a bug? or maybe I am just doing something wrong. can you please advice? Thanks!
public class CardsRecyclerViewFragment extends BaseNativeListFragment {
CardArrayRecyclerViewAdapter mCardArrayAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.demo_fragment_native_recyclerview, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
hideList(false);
//Set the arrayAdapter
ArrayList<Card> cards = new ArrayList<Card>();
mCardArrayAdapter = new CardArrayRecyclerViewAdapter(getActivity(), cards);
//Staggered grid view
CardRecyclerView mRecyclerView = (CardRecyclerView) getActivity().findViewById(R.id.carddemo_recyclerview);
mRecyclerView.setHasFixedSize(false);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
//Set the empty view
if (mRecyclerView != null) {
mRecyclerView.setAdapter(mCardArrayAdapter);
}
//Load cards
new LoaderAsyncTask().execute();
}
//-------------------------------------------------------------------------------------------------------------
// Images loader
//-------------------------------------------------------------------------------------------------------------
/**
* Async Task to elaborate images
*/
class LoaderAsyncTask extends AsyncTask<Void, Void, ArrayList<Card>> {
LoaderAsyncTask() {
}
@Override
protected ArrayList<Card> doInBackground(Void... params) {
//elaborate images
//SystemClock.sleep(1000); //delay to simulate download, don't use it in a real app
if (isAdded()) {
ArrayList<Card> cards = initCard();
return cards;
}else
return null;
}
@Override
protected void onPostExecute(ArrayList<Card> cards) {
//Update the adapter
updateAdapter(cards);
displayList();
}
}
/**
* This method builds a simple list of cards
*/
private ArrayList<Card> initCard() {
//Init an array of Cards
ArrayList<Card> cards = new ArrayList<Card>();
for (int i = 0; i < 50; i++) {
CardWithListTest card = new CardWithListTest(getActivity());
card.init();
cards.add(card);
}
return cards;
}
/**
* Update the adapter
*/
private void updateAdapter(ArrayList<Card> cards) {
if (cards != null) {
mCardArrayAdapter.addAll(cards);
}
}
}
This is the code for the CardWithList.
public class CardWithListTest extends CardWithList {
public CardInvoiceWithOrders(Context context) {
super(context);
}
@Override
protected CardHeader initCardHeader() {
//Add Header
CardHeader header = new CardHeader(getContext(), R.layout.card_invoice_with_orders_header);
header.setTitle("M-1 | {faw_user} Rodrigo Del canto"); //should use strings.xml
return header;
}
@Override
protected void initCard() {
//Set the whole card as swipeable
setSwipeable(false);
setOnSwipeListener(new OnSwipeListener() {
@Override
public void onSwipe(Card card) {
Toast.makeText(getContext(), "Swipe on " + card.getCardHeader().getTitle(), Toast.LENGTH_SHORT).show();
}
});
}
@Override
protected List<ListObject> initChildren() {
//Init the list
List<ListObject> mObjects = new ArrayList<ListObject>();
//Add an object to the list
Order s1 = new Order(this);
s1.code = "P-1-1";
s1.description = "2Ham, 3Cerv, 4Gas, 2Mila";
s1.drinks = 3;
s1.kitchen = 1;
mObjects.add(s1);
Order s2 = new Order(this);
s2.code = "P-1-2";
s2.description = "2Ham, 4Gas, 2Croq,2pasta";
s2.drinks = 1;
s2.kitchen = 4;
mObjects.add(s2);
Order s3 = new Order(this);
s3.code = "P-1-3";
s3.description = "4Emp, 3Cerv, 4Gas, 2Ensa";
s3.drinks = 2;
s3.kitchen = 2;
mObjects.add(s3);
Order s4 = new Order(this);
s4.code = "P-1-4";
s4.description = "2Ensa, 2Wis, 3Cerv, 4Agua";
s4.drinks = 2;
s4.kitchen = 2;
mObjects.add(s4);
return mObjects;
}
@Override
public View setupChildView(int childPosition, ListObject object, View convertView, ViewGroup parent) {
//Setup the ui elements inside the item
TextView textViewCode = (TextView) convertView.findViewById(R.id.textViewCode);
TextView textViewDesc = (TextView) convertView.findViewById(R.id.textViewDesc);
TextView textViewDrinks = (TextView) convertView.findViewById(R.id.textViewDrinks);
TextView textViewKitchen = (TextView) convertView.findViewById(R.id.textViewKitchen);
//Retrieve the values from the object
Order order = (Order) object;
textViewCode.setText(order.code);
textViewDesc.setText( order.description);
textViewDrinks.setText(order.drinks);
textViewKitchen.setText( order.kitchen);
return convertView;
}
@Override
public int getChildLayoutId() {
return R.layout.card_invoice_with_orders_inner_main;
}
// -------------------------------------------------------------
// Weather Object
// -------------------------------------------------------------
public class Order extends DefaultListObject {
public String code;
public String description;
public int drinks;
public int kitchen;
public Order(Card parentCard) {
super(parentCard);
init();
}
private void init() {
//OnClick Listener
setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(LinearListView parent, View view, int position, ListObject object) {
Toast.makeText(getContext(), "Click on " + getObjectId(), Toast.LENGTH_SHORT).show();
}
});
}
@Override
public String getObjectId() {
return code;
}
}
}
Here is the runtime Exception.
09-03 04:38:44.985 13217-13217/com.test.cardList E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.test.cardList, PID: 13217
java.lang.IndexOutOfBoundsException
at android.graphics.Canvas.drawTextRun(Canvas.java:1802)
at android.text.TextLine.drawTextRun(TextLine.java:991)
at android.text.TextLine.handleText(TextLine.java:789)
at android.text.TextLine.handleRun(TextLine.java:960)
at android.text.TextLine.drawRun(TextLine.java:398)
at android.text.TextLine.draw(TextLine.java:196)
at android.text.Layout.drawText(Layout.java:413)
at android.widget.Editor.drawHardwareAccelerated(Editor.java:1585)
at android.widget.Editor.onDraw(Editor.java:1507)
at android.widget.TextView.onDraw(TextView.java:5715)
at android.view.View.draw(View.java:16178)
at android.view.View.updateDisplayListIfDirty(View.java:15174)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.updateDisplayListIfDirty(View.java:15169)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.updateDisplayListIfDirty(View.java:15169)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.updateDisplayListIfDirty(View.java:15169)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.updateDisplayListIfDirty(View.java:15169)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16181)
at it.gmariotti.cardslib.library.view.ForegroundLinearLayout.draw(ForegroundLinearLayout.java:197)
at android.view.View.updateDisplayListIfDirty(View.java:15174)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.updateDisplayListIfDirty(View.java:15169)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16181)
at android.view.View.updateDisplayListIfDirty(View.java:15174)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.support.v7.widget.RecyclerView.drawChild(RecyclerView.java:4134)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16181)
at android.support.v7.widget.RecyclerView.draw(RecyclerView.java:3543)
at android.view.View.updateDisplayListIfDirty(View.java:15174)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573)
at android.view.View.updateDisplayListIfDirty(View.java:15134)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573)
at android.view.View.updateDisplayListIfDirty(View.java:15134)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573)
at android.view.View.updateDisplayListIfDirty(View.java:15134)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573)
at android.view.View.updateDisplayListIfDirty(View.java:15134)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573)
at android.view.View.updateDisplayListIfDirty(View.java:15134)
at android.view.ViewGroup.recreateChildDisplayList(Vie
The text was updated successfully, but these errors were encountered:
Hello!
I am having this exception every time I try to scroll back to the top. Is this a bug? or maybe I am just doing something wrong. can you please advice? Thanks!
compileSdkVersion 24
Version:
here is the source for the RecyclerView loader..
This is the code for the CardWithList.
Here is the runtime Exception.
The text was updated successfully, but these errors were encountered: