RandhirGupta / pagecurl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Maven Central

Page Curl

Page Curl library for Jetpack Compose.

Motivation

This library allows to create an effect of turning pages, which can be used in book reader applications, custom on-boarding screens or elsewhere.

Usage

Get a dependency

Step 1. Add the MavenCentral repository to your build file. Add it in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        mavenCentral()
    }
}

Or in settings.gradle:

pluginManagement {
    repositories {
        ...
        mavenCentral()
    }
}

Step 2. Add the dependency. Check latest version on the releases page.

dependencies {
    implementation 'io.github.oleksandrbalan:pagecurl:$version'
}

Use in Composable

The PageCurl has 2 mandatory arguments:

  • state - The state of the PageCurl. Use it to programmatically change the current page or observe changes, and to configure shadow, back-page and interactions.
  • content - The content lambda to provide the page composable. Receives the page number.
val pages = listOf("One", "Two", "Three")
val state = rememberPageCurlState(max = pages.size)
PageCurl(state = state) { index ->
    Box(
        contentAlignment = Alignment.Center,
        modifier = Modifier
            .background(MaterialTheme.colors.background)
            .fillMaxSize()
    ) {
        Text(
            text = pages[index],
            style = MaterialTheme.typography.h1,
        )
    }
}

See Demo application and examples for more usage examples.

Simple.Page.Curl.mp4
Shadow.Configuration.mp4
Back.Page.Configuration.mp4

About

License:Apache License 2.0


Languages

Language:Kotlin 100.0%