ethanhua / skeleton Goto Github PK
View Code? Open in Web Editor NEWA library provides an easy way to show skeleton loading view like Facebook and Alipay
A library provides an easy way to show skeleton loading view like Facebook and Alipay
Hi , I am using skeleton for recycle view but every time I scroll and next page response received . the list is displayed from 0 position. I recycleview not maintaining the last page position.
I've got a StackOverflowError from my user.
Divece info:
See log:
Fatal Exception: java.lang.StackOverflowError at java.lang.Class.getDeclaredField(Class.java) at java.lang.Class.getDeclaredField(Class.java:629) at androidx.core.graphics.TypefaceCompatBaseImpl.getUniqueKey(TypefaceCompatBaseImpl.java:85) at androidx.core.graphics.TypefaceCompatBaseImpl.getFontFamily(TypefaceCompatBaseImpl.java:211) at androidx.core.graphics.TypefaceCompat.getBestFontFromFamily(TypefaceCompat.java:173) at androidx.core.graphics.TypefaceCompat.create(TypefaceCompat.java:200) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:708) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypeface(TextView.java:1581) at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:711) at android.widget.TextView.setTypefaceFromAttrs(TextView.java:1391) at android.widget.TextView.<init>(TextView.java:1300) at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:100) at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:95) at androidx.appcompat.app.AppCompatViewInflater.createTextView(AppCompatViewInflater.java:194) at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:115) at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1551) at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1602) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675) at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at com.ethanhua.skeleton.ShimmerViewHolder.<init>(ShimmerViewHolder.java:17) at com.ethanhua.skeleton.SkeletonAdapter.onCreateViewHolder(SkeletonAdapter.java:27) at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7078) at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114) at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303) at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627) at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587) at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665) at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134) at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3540) at android.view.View.measure(View.java:15811) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4952) at android.widget.FrameLayout.onMeasure(FrameLayout.java:326) at android.view.View.measure(View.java:15811) at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1119) at android.view.View.measure(View.java:15811) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4952) at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:760) at com.google.android.material.appbar.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:99) at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1996) at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:831) at android.view.View.measure(View.java:15811) at android.widget.LinearLayout.measureVertical(LinearLayout.java:866) at android.widget.LinearLayout.onMeasure(LinearLayout.java:604) at android.view.View.measure(View.java:15811) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4952) at android.widget.FrameLayout.onMeasure(FrameLayout.java:326) at android.view.View.measure(View.java:15811) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4952) at android.widget.FrameLayout.onMeasure(FrameLayout.java:326) at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:146) at android.view.View.measure(View.java:15811) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4952) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1427) at android.widget.LinearLayout.measureVertical(LinearLayout.java:714) at android.widget.LinearLayout.onMeasure(LinearLayout.java:604) at android.view.View.measure(View.java:15811) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4952) at android.widget.FrameLayout.onMeasure(FrameLayout.java:326) at android.view.View.measure(View.java:15811) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4952) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1427) at android.widget.LinearLayout.measureVertical(LinearLayout.java:714) at android.widget.LinearLayout.onMeasure(LinearLayout.java:604) at android.view.View.measure(View.java:15811) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4952) at android.widget.FrameLayout.onMeasure(FrameLayout.java:326) at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2209) at android.view.View.measure(View.java:15811) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2232) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1310) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1505) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1200) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4962) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:776) at android.view.Choreographer.doCallbacks(Choreographer.java:579) at android.view.Choreographer.doFrame(Choreographer.java:548) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:762) at android.os.Handler.handleCallback(Handler.java:800) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java:5449) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(NativeStart.java)
我的页面结构是最外层是一个TabLayoutView,含有五个Fragment页面,我需要更改其中一个Fragment加载数据前的页面为骨架屏,我使用的是骨架加载预览 View这种方式,但是骨架屏页面为空白
Version: 1.1.0
AndroidRuntime: java.lang.NoSuchFieldError: No static field shimmer_color of type I in class Lcom/ethanhua/skeleton/R$color; or its superclasses (declaration of 'com.ethanhua.skeleton.R$color' appears in /data/app/io.zla.app.dev-Vy5HPDU23Z-PLz_xYaxCWw==/base.apk!classes3.dex)
AndroidRuntime: at com.ethanhua.skeleton.RecyclerViewSkeletonScreen$Builder.<init>(RecyclerViewSkeletonScreen.java:62)
AndroidRuntime: at com.ethanhua.skeleton.Skeleton.bind(Skeleton.java:13)
Hello, I found that library does not work with DiffUtill. When a new list is added, it will scroll to the first position. Сould you fix this?
Hi, can you update build after that fix
I added pagination for recyclerview. After I loaded new items its forcefully scroll to top(0th) position.
Finally I found this is happening only because of Skeleton layout applied for recylerview.
I successfully doing pagination and maintain same scroll position with hiding skeleton piece code. If I add skeleton code only its not working proper.
Please fix this.
skeletonScreen = Skeleton.bind(recyclerView)
.adapter(courseLibraryAdapter)
.load(R.layout.row_course_library_skeleton)
.shimmer(true)
.angle(20)
.frozen(false)
.duration(1200)
.count(10)
.show()
fun RecyclerView.addOnScrolledToEnd(onScrolledToEnd: () -> Unit){
this.addOnScrollListener(object: RecyclerView.OnScrollListener(){
var visibleThreshold = 5
private var loading = true
private var previousTotal = 0
override fun onScrollStateChanged(recyclerView: RecyclerView,
newState: Int) {
with(layoutManager as LinearLayoutManager){
val visibleItemCount = childCount
val totalItemCount = itemCount
val firstVisibleItem = findFirstVisibleItemPosition()
if (loading && totalItemCount > previousTotal){
loading = false
previousTotal = totalItemCount
}
if(!loading && (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold)){
onScrolledToEnd()
loading = true
}
}
}
})
}
recyclerView.addOnScrolledToEnd {
//What you want to do once the end is reached
page++
pbViewMore!!.visibility = View.VISIBLE
callAsync()
}
class CourseLibraryAdapter(private val context: Context, private var myCourseList: MutableList<MyLearningCourseVo>): RecyclerView.Adapter<CourseLibraryAdapter.ViewHolder>() {
inner class ViewHolder(var view: View) : RecyclerView.ViewHolder(view) {
val tvCourseName: TextView = view.findViewById(R.id.tv_course_name)
}
fun swapList(myCourseList: MutableList<MyLearningCourseVo>) {
this.myCourseList.addAll(myCourseList)
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val itemView = LayoutInflater.from(context).inflate(R.layout.row_course_library, parent, false)
return ViewHolder(itemView)
}
override fun getItemCount(): Int {
return myCourseList.size
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val myLearningCourseVo = myCourseList[position]
holder.tvCourseName.text = myLearningCourseVo.name
}
}
Do you need to configure the obfuscation file?
One word: NICE !!
But why is the min SDK set to 15 ??
From what I see the library looks compatible for devices lower than that yes ?
ItemDecorations doesn't apply to the skeleton layout files, any fix?
Hey, maybe I am just using the library wrong, but I have the issue that instead the "shimmer effect" is on each individual skeleton view, I have just a big black bar running from left to right which looks incredibly ugly..
Did you encounter this issue before and what can I do to avoid it?
Code for showing animation
RecyclerViewSkeletonScreen skeletonScreen = Skeleton.bind(viewHolder.listSchedule)
.adapter(scheduleListAdapter)
.load(R.layout.item_schedule)
.show();
Hiding it
skeletonScreen.hide();
Item Layout File
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/box_item_schedule"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_margin="@dimen/space_5"
android:clipToPadding="false"
app:cardCornerRadius="@dimen/space_10"
app:cardElevation="@dimen/space_5"
app:cardPreventCornerOverlap="true"
tools:cardBackgroundColor="@color/com_facebook_blue">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/txt_schedule_time"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="@dimen/space_20"
android:paddingTop="@dimen/space_20"
android:paddingEnd="@dimen/space_20"
android:shadowColor="@android:color/black"
android:shadowDx="3"
android:shadowDy="3"
android:shadowRadius="5"
android:textAppearance="?textAppearanceListItemSecondary"
android:textColor="@android:color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="@tools:sample/date/hhmmss" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/txt_schedule_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="@dimen/space_20"
android:paddingEnd="@dimen/space_20"
android:paddingBottom="@dimen/space_20"
android:shadowColor="@android:color/black"
android:shadowDx="3"
android:shadowDy="3"
android:shadowRadius="5"
android:textAppearance="?textAppearanceListItem"
android:textColor="@android:color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="Hello How Are You?" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
I've got such code before using your framework:
mRecyclerView.setLayoutManager(new LinearLayoutManager(rootView.getContext(), LinearLayoutManager.HORIZONTAL, false));
But if I use your framework, even when specifying count I still can see only one item, but I guess it's only because it's in Vertical mode.
i want to show image after downloading from network(Glide4),but skeleton seem not support to preload the adapter?anyone can help?thanks
i don't can't can implement skeletonScreen.hide()
First of all, Thank you for contributing such fabulous library.
I am applying shimmering effect on a View
and I am facing issue in one case. Case is, when I use RootView as CoordinatorLayout
it doesn't work.
Code in My Fragment onCreateView -
ViewSkeletonScreen skeletonScreen = Skeleton.bind(shimmerLinearLayout)
.load(R.layout.layout_job_seeker_details_skeleton)
.color(R.color.white)
.show();
My Fragment xml -
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/shimmerLinearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.varad.myapp.fragment.MainFragment">
.... AppBarLayout ... NestedScrollView ....
</android.support.design.widget.CoordinatorLayout>
But when I include LinearLayout
under CoordinatorLayout
and assign id to LinearLayout
it works. But if I use LinearLayout
under CoordinatorLayout
the scroll effect of AppBarLayout
will not show any effect.
Updated Fragment xml -
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.varad.myapp.fragment.MainFragment">
<LinearLayout
android:id="@+id/shimmerLinearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
.... AppBarLayout ... NestedScrollView ....
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
Why so?
This is my main layout
<android.support.v7.widget.RecyclerView
android:id="@+id/timeSlots"
android:layout_width="match_parent"
android:layout_height="70dp"
android:cacheColorHint="@android:color/transparent"
android:fadingEdgeLength="35dp"
android:orientation="horizontal"
android:requiresFadingEdge="horizontal"
app:layoutManager="android.support.v7.widget.LinearLayoutManager"
tools:listitem="@layout/item_timeslot" />
This is skeleton layout
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="70dp"
android:layout_height="70dp">
<View
android:background="@drawable/ic_svg_timeslot_skeleton"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.constraint.ConstraintLayout>
Then this is my Kotlin code
Skeleton.bind(skeletonView)
.adapter(skeletonView.adapter)
.load(skeletonLayout)
.shimmer(true)
.color(R.color.shimmer)
.duration(1500)
.count(5)
.frozen(true)
.show()
Somehow it not show 5 items in horizontal mode, but when I change it to the vertical mode it works perfectly.
如标题
Shimmer效果会偶现卡顿、闪烁或者重影的现象
Hi,
We pushed an update to our app 2 days ago, the main change being the addition of Skeleton. It is really amazing and easy to setup, for which thanks a lot!
The only issue is that we got a new crash caught by Crashlytics, which already happened few dozen times ( we have 100k active users, around 50% updated ).
After hours spent on investigation we suspect that it's caused by ViewReplacer, either by replace() or restore() when they call removeView. Earlier versions of Android ( < 7.0 ) have a bug in ViewGroup's dispatchDraw(), which crashes app mostly when you use removeView and the removed child is null during that specific moment I guess.
Related thread on SO
And here is the relevant part of the crash log:
Attempt to read from field 'int android.view.View.mViewFlags' on a null object reference
android.view.ViewGroup.dispatchDraw (ViewGroup.java:3330)
android.view.View.updateDisplayListIfDirty (View.java:14415)
android.view.View.getDisplayList (View.java:14452)
android.view.View.draw (View.java:15257)
android.view.ViewGroup.drawChild (ViewGroup.java:3540)
....
i dont know why?could you please tell me why
in a viewpager if i have different shimmer layouts for each fragment, the shimmers get merged in random way when you navigate from one fragment to another.
Ex: Viewpager with 5 fragments with recyclerviews
F1 has S1 as shimmer layout and so on..
I see
S1
S2
S1
as shimmerview instead of seeing
S1
S1
S1
in F1
Hello,
Thanks for your library it's very handful, i have issue when implement it using the following code :
Skeleton.bind(recyclerview)
.adapter(adapter)
.shimmer(true)
.angle(20)
.frozen(true)
.duration(1200)
.count(10)
.load(R.layout.account_skeleton_row)
.show()
the row in recyclerview doesn't full the screen width, can check this issue.
Thanks,
it is not showing skeleton item full width in Recyclerview with horizontal layout. it is working perfectly in vertical layout.
it does not work in fragment when has empty view. view.getParent() always null.
fragment+view Pager 展示不了骨架屏
How can I add some animation to be more fluent like a Fade In and Fade Out Transition?
2 android.graphics.LinearGradient.copy(LinearGradient.java:129)
3 android.graphics.ComposeShader.copy(ComposeShader.java:96)
4 android.graphics.Shader.mzReversalCopy(Shader.java:134)
5 com.meizu.nightmode.MzNightModeManager.beforeDrawColor(MzNightModeManager.java:830)
6 com.meizu.nightmode.MzNightModeManager.beforeDrawColor(MzNightModeManager.java:810)
7 android.view.RecordingCanvas.drawRect(RecordingCanvas.java:622)
8 io.supercharge.shimmerlayout.ShimmerLayout.drawShimmer(ShimmerLayout.java:261)
9 io.supercharge.shimmerlayout.ShimmerLayout.dispatchDrawShimmer(ShimmerLayout.java:250)
10 io.supercharge.shimmerlayout.ShimmerLayout.dispatchDraw(ShimmerLayout.java:106)
11 android.view.View.draw(View.java:19355)
12 android.view.View.updateDisplayListIfDirty(View.java:18295)
13 android.view.View.draw(View.java:19073)
14 android.view.ViewGroup.drawChild(ViewGroup.java:4236)
15 androidx.recyclerview.widget.RecyclerView.drawChild(RecyclerView.java:4820)
First of all I would like to thank you fort this amazing library!
In the app I'm building, my layout has a different first item in the RecyclerView, a "header" or "promoted" first item, and the rest of them are a second layout. Is there a way to get Skeleton to mimic this layout?
Imagine the layout where it's a vertical list of articles, and the first article is double the height of the rest of them, and some elements moved around, like the title.
Thank you!
You should now use 'https://github.com/team-supercharge/ShimmerLayout' instead of ('https://github.com/team-supercharge/ShimmerLayout') , because supercharge has jerks in Android 9 version and is not being updated from years, while facebook is updating its library, and doesn't has jerks.
//implementation project(':library')
这导致项目在 clone 后无法正常 build,也是排查了好一会儿才发现。
建议是改成注释远程依赖:
implementation project(':library')
// implementation 'com.ethanhua:skeleton:1.1.2'
How can freeze the SkeltonView or set scroll or enabled false ?
Hello , How to work in Fragment+ViewPager.
Hello, i finded that now ShimmerLayout id Deprecated
Please migrate to AndroidX if this libary should continue to be usable, as this is a requirement for Google Play as of 1. of november do to min api 28 and firebase for that version requires AndroidX.
I'm using the Shimmerlayout in a viewpager....Each fragment of the viewpager has a recyclerview...
So upon scrollling inside one of my fragments, my app crashed and I get this error:
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap
Here is the method in question:
private Bitmap createBitmap(int width, int height) { try { return Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); } catch (OutOfMemoryError e) { System.gc(); return Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); } #}
Is there any way to get Skeleton ot work work with viewpagers? It seems like it would not work with standard view.
Will it be necessary to write something similar to the recycler view holder in order for it to be compatible, or is there a workaround?
I'm getting exception when i try to load same screen again, first time it is working, 3rd or 4th time its crashing. " java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.isRecycled()' on a null object reference"
I have a case where I would like to only show a partial of the row view as skeleton because it have some data available but the rest I am waiting for a api call to complete before I am able to show.
Is this possible with this lib somehow with binding to a specific view without loading the layout through skeleton?
I use a CardView as root layout and shimmering is showing on the whole view. Already tried setting transparent background. Didn't work.
when i apply it for view which is an item of recyclerview, when i scrolled down sometimes not getting shimmer animation for that skeleton view
skeletonScreen = Skeleton.bind(rootView)
.color(R.color.tlShimmerColor)
.load(R.layout.item_skeleton_view_profile)
.show();
Leads to FrameLayout
being leaked. My analysis is that this is due to this function:
private ShimmerLayout generateShimmerContainerLayout(ViewGroup parentView) {
final ShimmerLayout shimmerLayout = (ShimmerLayout) LayoutInflater.from(mActualView.getContext()).inflate(R.layout.layout_shimmer, parentView, false);
shimmerLayout.setShimmerColor(mShimmerColor);
shimmerLayout.setShimmerAngle(mShimmerAngle);
shimmerLayout.setShimmerAnimationDuration(mShimmerDuration);
View innerView = LayoutInflater.from(mActualView.getContext()).inflate(mSkeletonResID, shimmerLayout, false);
ViewGroup.LayoutParams lp = innerView.getLayoutParams();
if (lp != null) {
shimmerLayout.setLayoutParams(lp);
}
shimmerLayout.addView(innerView);
shimmerLayout.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
@Override
public void onViewAttachedToWindow(View v) {
shimmerLayout.startShimmerAnimation();
}
@Override
public void onViewDetachedFromWindow(View v) {
shimmerLayout.stopShimmerAnimation();
}
});
shimmerLayout.startShimmerAnimation();
return shimmerLayout;
}
A new object is being inflated which internally uses the rootView but it is never destroyed explicitly.
Hi,
Is it possible to give sone view to Skeleton that we want to exclude to have the shimmer animation ?
For example, I have a card view, the bacjground is important so I can't put it transparent. I need to exlude it to skeleton.
Thx for you library 👍
Abnormal crash!
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.unFocus(android.view.View)' on a null object reference at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5465) at android.view.ViewGroup.removeViewAt(ViewGroup.java:5428) at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1250) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303) at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439) at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079) at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869) at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824) at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727) at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:230)
Im using the skeleton and when I'm binding it to the recycler view it's automatically disappear when data is in place, but when I enter to another fragment and then return to the one with the loading the skeleton returns again.
I tried to use the hide() function but it just hiding the recycler as well.
Activity section this working fine. How can add this feature in fragment?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.