{"id":15621581,"url":"https://github.com/janishar/placeholderview","last_synced_at":"2025-05-15T10:07:29.110Z","repository":{"id":46586826,"uuid":"66012679","full_name":"janishar/PlaceHolderView","owner":"janishar","description":"This library provides advance views for lists and stacks. Some of the views are build on top of RecyclerView and others are written in their own. Annotations are compiled by annotation processor to generate bind classes. DOCS --\u003e","archived":false,"fork":false,"pushed_at":"2023-10-09T09:01:13.000Z","size":68833,"stargazers_count":2107,"open_issues_count":70,"forks_count":369,"subscribers_count":79,"default_branch":"2.x","last_synced_at":"2025-04-14T16:57:23.254Z","etag":null,"topics":["android","animation","annotation-processing","annotation-processor","annotations","gridview","listview","loadmore","placeholderview","recyclerview","swipe","swipeview","tinder","tinder-swiper","tinder-ui"],"latest_commit_sha":null,"homepage":"http://janishar.com/PlaceHolderView","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/janishar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-18T16:21:50.000Z","updated_at":"2025-04-09T12:21:11.000Z","dependencies_parsed_at":"2024-10-22T21:01:00.750Z","dependency_job_id":null,"html_url":"https://github.com/janishar/PlaceHolderView","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janishar%2FPlaceHolderView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janishar%2FPlaceHolderView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janishar%2FPlaceHolderView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janishar%2FPlaceHolderView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/janishar","download_url":"https://codeload.github.com/janishar/PlaceHolderView/tar.gz/refs/heads/2.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254319720,"owners_count":22051073,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","animation","annotation-processing","annotation-processor","annotations","gridview","listview","loadmore","placeholderview","recyclerview","swipe","swipeview","tinder","tinder-swiper","tinder-ui"],"created_at":"2024-10-03T09:51:12.857Z","updated_at":"2025-05-15T10:07:24.099Z","avatar_url":"https://github.com/janishar.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv\u003e\n    \u003cp align=\"center\"\u003e\u003cimg src=\"https://janishar.github.io/PlaceHolderView/img/logo.svg\" width=\"300\" \u003e\u003c/p\u003e\n    \u003cp align=\"center\"\u003e\u003ch1 align=\"center\"\u003ePlaceHolderView\u003c/br\u003e An advance view for lists and stacks\u003c/h1\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n[![Download 2.x](https://api.bintray.com/packages/janishar/mindorks/placeholderview-2/images/download.svg) ](https://bintray.com/janishar/mindorks/placeholderview-2/_latestVersion)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n# Some Implementations\n![](https://janishar.github.io/gifs/vid_tinder.gif)  ![](https://janishar.github.io/gifs/feed_vid.gif)  ![](https://janishar.github.io/gifs/vid_slides.gif)  ![](https://janishar.github.io/gifs/vid_tinder_v2.gif)  ![](https://janishar.github.io/gifs/vid_drawer.gif)  ![](https://janishar.github.io/gifs/infinite_vid.gif)    \n\n-----\n# Documentation\nYou can find the PlaceHolderView documentation [here](https://janishar.github.io/PlaceHolderView/docs/introduction.html) which has extended usage instructions and other useful information. \n\n\u003ca href=\"https://janishar.github.io/PlaceHolderView\" target=\"_blank\"\u003e\u003cimg src=\"https://janishar.github.io/images/get-started-button.jpg\" width=\"150\" height=\"45\"/\u003e\u003c/a\u003e\n\n-----\n# About PlaceHolderView\nSome of the views in PlaceHolderView library is build on top of RecyclerView and rest are written in its own.\n\n# About The Author\nYou can connect with me here:\n* [Janishar Ali](https://janisharali.com)\n* [Twitter](https://twitter.com/janisharali)\n* [YouTube Channel](https://www.youtube.com/@unusualcode)\n\n**All the annotations are processed during build time to generate the binding classes**\n\nThere are two versions available for use.\n1. Old version (branch 1.x): Uses Java reflection\n2. **New version (branch 2.x): Uses Annotation Processing.**\n\n## This library provides 5 different type of views\n\n1. **PlaceHolderView**\u003cbr/\u003e\nIt is build on top of RecyclerView and abstracts most of the boiler plate. It provides APIs through annotations.\n\n2. **InfinitePlaceHolderView**\u003cbr/\u003e\nIt is build on PlaceHolderView and adds the functionality of handling load more views when the user has scrolled to the bottom of the list.\n\n3. **ExpandablePlaceHolderView**\u003cbr/\u003e\nIt is build on PlaceHolderView and creates ExpandableListView with parent-child relation.\n\n4. **SwipePlaceHolderView**\u003cbr/\u003e\nIt is not build on RecyclerView. Its a ground up implementation. We can create a variety of card stack views using this class. It provides APIs that could easily build Tinder like cards.\n\n5. **SwipeDirectionalView**\u003cbr/\u003e\nIt is build on top of SwipePlaceHolderView. It provides callbacks for swipe directions and touch events.\n\n# How to use newer version (2.x branch) with annotation processing\n\n## Gradle dependency:\n**Java**\n```groovy\ndependencies {\n    ...\n    compile 'com.mindorks.android:placeholderview:1.0.3'\n    annotationProcessor 'com.mindorks.android:placeholderview-compiler:1.0.3'\n\n    // RecyclerView dependency is added to override the\n    // default 25.4.1 RecyclerView dependency used by placeholderview.\n    // If you are using the support libraries other than 25.x in the project\n    compile 'com.android.support:recyclerview-v7:\u003ccurrent-version\u003e' // example: 27.1.0\n}\n```\n**Kotlin**\n```groovy\ndependencies {\n    ...\n    // RecyclerView dependency is added to override the\n    // default 25.4.1 RecyclerView dependency stated by placeholderview\n    // since we are using the 27.+ support libraries in the project\n    implementation 'com.android.support:recyclerview-v7:27.1.0'\n    implementation 'com.mindorks.android:placeholderview:1.0.3'\n    kapt 'com.mindorks.android:placeholderview-compiler:1.0.3'\n}\n```\n## For use with Kotlin refer to [Kotlin docs](http://janishar.com/PlaceHolderView/docs/kotlin.html).\n\n# Migration: \nIt is super easy to migrate to 2.x branch library version.\n\n## To migrate from 1.x to 2.x see [Migration doc here](http://janishar.com/PlaceHolderView/docs/migration.html).\n\n---\n## How to Use older version (1.x branch)\nIf you want to use older version of PlaceHoldeView that used reflection, then you can use below dependecies. \n\n### Gradle dependency:\n```groovy\ndependencies {\n    compile 'com.mindorks:placeholderview:0.7.3'\n}\n```\n### Dependency: It depends on the RecyclerView\nAdd below lines in your app's build.gradle if recyclerview above v7:25 is being used\n```groovy\n    // NOTE: change the version of recyclerview same as the your project's support library version\n    com.android.support:recyclerview-v7:25.+\n```\n\n### Proguard Note:\nIf you are using proguard, then add this rule in proguard-project.txt\n```groovy\n  -keepattributes *Annotation*\n  -keepclassmembers class ** {\n    @com.mindorks.placeholderview.annotations.** \u003cmethods\u003e;\n  }\n```\n\n# If this library helps you in anyway, show your love :heart: by putting a :star: on this project :v:\n\n# TO-DOs\n- [X] Update/Refresh the View already shown in the stack.\n- [X] Callback when a card comes on top of the stack.\n- [ ] Provide Undo for the entire swipe history.\n- [X] Provide Sort for the PlaceHolderView.\n\n# License\n\n```\n   Copyright (C) 2023 Janishar Ali Anwar\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n        http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License\n\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanishar%2Fplaceholderview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjanishar%2Fplaceholderview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanishar%2Fplaceholderview/lists"}