You can use SkeletonLayout in Kotlin by either finding an existing SkeletonLayout in your view hierarchy or creating a new one from an existing View using the createSkeleton() extension function. For RecyclerView and ViewPager2, use the applySkeleton() extension function.
To toggle the view, use showSkeleton() to display the loading state and showOriginal() to return to the actual content once data is loaded.
class MainActivity : AppCompatActivity() {
private lateinit var skeleton: Skeleton
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Either use an existing Skeletonlayout
skeleton = findViewById(R.id.skeletonLayout)
// or create a new SkeletonLayout from a given View
skeleton = view.createSkeleton()
// and customize every detail including the layout used for the skeleton mask
skeleton = view.createSkeleton(config = SkeletonConfig.default(this, maskLayout = R.layout.custom_mask))
// support ViewPager2
skeleton = viewPager2.applySkeleton(R.layout.list_item_viewpager2)
// support RecyclerView
skeleton = recyclerView.applySkeleton(R.layout.list_item_recyclerview)
skeleton.showSkeleton()
}
// Example callback that hides skeleton
private fun onDataLoaded() {
skeleton.showOriginal()
}
}