{"id":13642755,"url":"https://github.com/kHRYSTAL/CircleRecyclerView","last_synced_at":"2025-04-20T20:32:45.639Z","repository":{"id":95092772,"uuid":"68218894","full_name":"kHRYSTAL/CircleRecyclerView","owner":"kHRYSTAL","description":"the library is a loop RecyclerView(expression), can show some effects when display","archived":false,"fork":false,"pushed_at":"2023-06-08T12:02:12.000Z","size":1799,"stargazers_count":714,"open_issues_count":4,"forks_count":100,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-11-09T14:38:46.503Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kHRYSTAL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-09-14T15:34:53.000Z","updated_at":"2024-11-02T04:46:30.000Z","dependencies_parsed_at":"2023-05-26T14:30:27.499Z","dependency_job_id":"325b6e50-458b-4c19-ba43-55b52356a26c","html_url":"https://github.com/kHRYSTAL/CircleRecyclerView","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kHRYSTAL%2FCircleRecyclerView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kHRYSTAL%2FCircleRecyclerView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kHRYSTAL%2FCircleRecyclerView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kHRYSTAL%2FCircleRecyclerView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kHRYSTAL","download_url":"https://codeload.github.com/kHRYSTAL/CircleRecyclerView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249959092,"owners_count":21351768,"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":[],"created_at":"2024-08-02T01:01:35.884Z","updated_at":"2025-04-20T20:32:42.598Z","avatar_url":"https://github.com/kHRYSTAL.png","language":"Java","funding_links":[],"categories":["RecyclerView"],"sub_categories":[],"readme":"### CircleRecyclerView\n\nthe library is a loop RecyclerView, can show some effects when display\n\n### screenshot\n\nCircularViewMode\n\n![CircularViewMode](https://github.com/kHRYSTAL/CircleRecyclerView/blob/master/screenshot/screenshot1.gif)\n\nScaleXViewMode \u0026 ScaleYViewMode\n\n![ScaleXYViewMode](https://github.com/kHRYSTAL/CircleRecyclerView/blob/master/screenshot/screenshot2.gif)\n\nRotateXScaleYViewMode \u0026 RotateYScaleXViewMode\n\n![RotateXYScaleXYViewMode](https://github.com/kHRYSTAL/CircleRecyclerView/blob/master/screenshot/screenshot3.gif)\n\nNoLoop but CenterForce (setClipPadding(l,t,r,b); setClipChildren(false);)\n\n![](http://ww2.sinaimg.cn/large/72f96cbajw1f7yqcwf0cyg20cz0l9n54.gif)\n\nCircularHorizontalMode\n\n![CircularHorizontalMode](https://github.com/kHRYSTAL/CircleRecyclerView/blob/master/screenshot/screenshot4.gif)\n\n### usage\n\n```\n\nmCircleRecyclerView = (CircleRecyclerView) view.findViewById(R.id.circle_rv);\nmCircleRecyclerView.setLayoutManager(mLayoutManager);\nmCircleRecyclerView.setViewMode(mItemViewMode); // T implements ItemViewMode, after setLayoutManager(manager)\nmCircleRecyclerView.setNeedCenterForce(true); // when SCROLL_STATE_IDLE == state, nearly center itemview scroll to center\n\nmCircleRecyclerView.setNeedLoop(true); // default is true\n\n// if setCenterForce(true), can set this callback\nmCircleRecyclerView.setOnCenterItemClickListener(new CircleRecyclerView.OnCenterItemClickListener() {\n    @Override\n    public void onCenterItemClick(View v) {\n        Toast.makeText(getContext(), \"Center Clicked\", Toast.LENGTH_SHORT).show();\n    }\n});\n\n```\n\nand if loop is true, the RecyclerView.Adapter\u003cVH\u003e need like this:\n \n```\n@Override\npublic void onBindViewHolder(VH holder, int position) {\n    positionData = mDataList.get(position % mDataList.size());\n}\n\n@Override\npublic int getItemCount() {\n    return Integer.MAX_VALUE;\n}\n \n``` ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FkHRYSTAL%2FCircleRecyclerView","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FkHRYSTAL%2FCircleRecyclerView","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FkHRYSTAL%2FCircleRecyclerView/lists"}