{"adoption": {"forks": 395, "observed_at": "2026-08-28T04:06:54.629517+00:00", "stars": 2469}, "canonical_url": "https://ross.abutalabs.com/products/zoomheader", "card": {"archived": false, "artifact_type": "learning-resource", "description": "A demo of animation show how turn viewpager into detail.神交互。模仿饿了么详情页可以跟随手指移动 viewpager变详情页", "domain": ["mobile-development", "android-tools", "tutorials", "web-design"], "enriched": true, "function": ["animation", "ui-components", "state-management"], "health_score": 20, "homepage": null, "language": "Java", "license": null, "license_family": "other", "maturity": "abandoned", "member_repos": ["githubwing/ZoomHeader"], "name": "githubwing/ZoomHeader", "platform": [], "pushed_at": "2016-12-10T09:40:38+00:00", "repo": "githubwing/ZoomHeader", "stars": 2469, "tags": ["android-demo", "viewpager", "coordinatorlayout", "behavior", "gesture-interaction", "detail-page-transition", "eleme-clone", "java", "android", "mobile"], "topics": [], "urls": [], "use_cases": ["implement a viewpager that expands into a detail page on drag", "learn how CoordinatorLayout Behavior works", "recreate the Ele.me detail page interaction", "make an image scale up following finger movement without requestLayout", "understand custom touch gesture handling for header views", "sync RecyclerView scrolling with a collapsing header", "change ViewPager child drawing order for gallery effects"], "what_it_is": "An Android demo project in Java that mimics the Ele.me app's detail page, where a ViewPager smoothly expands into a full detail view that follows the user's finger. It is explicitly a teaching example built with CoordinatorLayout and custom Behavior, not a reusable library.", "when_to_avoid": ["you need a production-ready, drop-in library component", "you want maintained code with a license and recent updates", "your project uses Kotlin or Jetpack Compose", "you need polished edge-case handling, since the author notes details are unfinished"], "when_to_choose": ["you want to study the technique behind finger-following viewpager-to-detail transitions", "you need a reference implementation of CoordinatorLayout Behavior-driven animations", "you are learning Android gesture and nested scrolling internals"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/zoomheader", "repo": "githubwing/ZoomHeader", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:54.629517+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:29:10.430366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c167d69519989f4ea06ed621b61f482b7d06a4c3d6e51b463277867c6ee1e66c", "fetched_at": "2026-08-28T04:06:54.629517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/githubwing/ZoomHeader"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:54.629517+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:29:10.430366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c167d69519989f4ea06ed621b61f482b7d06a4c3d6e51b463277867c6ee1e66c", "fetched_at": "2026-08-28T04:06:54.629517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/githubwing/ZoomHeader"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:29:10.430366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c167d69519989f4ea06ed621b61f482b7d06a4c3d6e51b463277867c6ee1e66c", "fetched_at": "2026-08-28T04:06:54.629517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/githubwing/ZoomHeader"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:54.629517+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:54.629517+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:54.629517+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:29:10.430366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c167d69519989f4ea06ed621b61f482b7d06a4c3d6e51b463277867c6ee1e66c", "fetched_at": "2026-08-28T04:06:54.629517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/githubwing/ZoomHeader"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:54.629517+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:54.629517+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:29:10.430366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c167d69519989f4ea06ed621b61f482b7d06a4c3d6e51b463277867c6ee1e66c", "fetched_at": "2026-08-28T04:06:54.629517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/githubwing/ZoomHeader"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:54.629517+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:54.629517+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:54.629517+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:29:10.430366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c167d69519989f4ea06ed621b61f482b7d06a4c3d6e51b463277867c6ee1e66c", "fetched_at": "2026-08-28T04:06:54.629517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/githubwing/ZoomHeader"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:54.629517+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:54.629517+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:29:10.430366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c167d69519989f4ea06ed621b61f482b7d06a4c3d6e51b463277867c6ee1e66c", "fetched_at": "2026-08-28T04:06:54.629517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/githubwing/ZoomHeader"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:29:10.430366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c167d69519989f4ea06ed621b61f482b7d06a4c3d6e51b463277867c6ee1e66c", "fetched_at": "2026-08-28T04:06:54.629517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/githubwing/ZoomHeader"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:29:10.430366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c167d69519989f4ea06ed621b61f482b7d06a4c3d6e51b463277867c6ee1e66c", "fetched_at": "2026-08-28T04:06:54.629517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/githubwing/ZoomHeader"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:29:10.430366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c167d69519989f4ea06ed621b61f482b7d06a4c3d6e51b463277867c6ee1e66c", "fetched_at": "2026-08-28T04:06:54.629517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/githubwing/ZoomHeader"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3557, "days_push": 3553, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}