Giter Site home page Giter Site logo

ethanhua / skeleton Goto Github PK

View Code? Open in Web Editor NEW
3.6K 3.6K 451.0 16.6 MB

A library provides an easy way to show skeleton loading view like Facebook and Alipay

Java 100.00%
android-library android-ui loadingview placeholder shimmer skeleton-loading stateview

skeleton's People

Contributors

ethanhua avatar veghtomi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

skeleton's Issues

How to implement pagination ?

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.

java.lang.StackOverflowError happened

I've got a StackOverflowError from my user.
Divece info:
image

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)

在Fragment中使用骨架页面空白

我的页面结构是最外层是一个TabLayoutView,含有五个Fragment页面,我需要更改其中一个Fragment加载数据前的页面为骨架屏,我使用的是骨架加载预览 View这种方式,但是骨架屏页面为空白

RecyclerView skeleton screen is crashing app when shimmer_color is not defined

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)

Does not work with DiffUtill

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?

RecyclerView scroll position not able to maintain on pagination

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
        }
    }

Hello

Do you need to configure the obfuscation file?

min sdk

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 ?

Big Black bar running along the screen

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?

Skeleton on cardview item with recyclerview getting clipped at bottom part

Please see the GIF attached

GIF

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>

Can't find any way to have this to work on a RecyclerView that is Horizontal.

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.

Not working with RootView as CoordinatorLayout

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?

Skeleton, show only one item on RecyclerView Horizontal mode.

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.

Crash possibly caused by Skeleton's ViewReplacer

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)
....

wrong shimmer layout in viewpager

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

Skeleton recyclerview

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,

has a problem

it does not work in fragment when has empty view. view.getParent() always null.

java.lang.NullPointerException

Attempt to invoke virtual method 'void android.graphics.Matrix.set(android.graphics.Matrix)' on a null object reference
1 android.graphics.Shader.copyLocalMatrix(Shader.java:159)

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)

RecyclerView use two different layouts?

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!

sample module 的 build.gradle 注释了对 library 的依赖

//implementation project(':library')

这导致项目在 clone 后无法正常 build,也是排查了好一会儿才发现。

建议是改成注释远程依赖:

implementation project(':library')
// implementation 'com.ethanhua:skeleton:1.1.2'

AndroidX migration required

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.

java.lang.OutOfMemoryError

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); } #}

Getting Library to Work with View Pager

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?

Crash 'boolean android.graphics.Bitmap.isRecycled()"

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"

Partial row skeleton - is that possible?

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?

Shimmering showing on CardView

I use a CardView as root layout and shimmering is showing on the whole view. Already tried setting transparent background. Didn't work.

Shimmer animation

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

Leak canary detects memory leaks when using view based skeleton

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.

[Feature] Exclude some views

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 👍

fragment+viewPager

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)

Loading skeleton return after data arrived

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.