{"adoption": {"forks": 618, "observed_at": "2026-08-28T04:07:01.288550+00:00", "stars": 2568}, "canonical_url": "https://ross.abutalabs.com/products/luckyjayce-viewpagerindicator", "card": {"archived": false, "artifact_type": "library", "description": "Indicator 取代 tabhost，实现网易顶部tab，新浪微博主页底部tab，引导页，无限轮播banner等效果，高度自定义tab和特效，LazyFragment", "domain": ["mobile-development", "android-tools", "frontend"], "enriched": true, "function": ["ui-components", "animation", "routing"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["LuckyJayce/ViewPagerIndicator"], "name": "LuckyJayce/ViewPagerIndicator", "platform": ["jvm"], "pushed_at": "2019-12-17T12:50:40+00:00", "repo": "LuckyJayce/ViewPagerIndicator", "stars": 2568, "tags": ["viewpager", "tab-indicator", "android-library", "lazy-fragment", "onboarding", "banner-carousel", "android", "mobile"], "topics": [], "urls": [], "use_cases": ["implement top tab navigation like NetEase news app", "create bottom tab bar like Sina Weibo homepage", "build onboarding guide pages with swipeable screens", "make an infinite auto-scrolling banner carousel", "customize tab indicator styles and sliding block animations", "lazy-load fragments in a viewpager with caching"], "what_it_is": "An Android library that replaces TabHost with a customizable ViewPager indicator, supporting top tabs (like NetEase news), bottom tabs (like Sina Weibo), guide pages, and infinite banner carousels. It offers highly customizable tab styles, sliding block effects, transition animations, and lazy-loading fragments.", "when_to_avoid": ["starting a new project with Jetpack Compose navigation", "you need ViewPager2 support (library targets the older ViewPager)", "project requires actively maintained dependencies"], "when_to_choose": ["building an Android app with ViewPager-based tab navigation", "you need highly custom tab and indicator visuals", "you want guide/onboarding or banner carousel effects with minimal code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/luckyjayce-viewpagerindicator", "repo": "LuckyJayce/ViewPagerIndicator", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.288550+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:23:21.039366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ecc98f416b87be7257f4ff3ddbbf3aeb212ebbc4b5ff3e084fe5c5fdb21d691d", "fetched_at": "2026-08-28T04:07:01.288550+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LuckyJayce/ViewPagerIndicator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.288550+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:23:21.039366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ecc98f416b87be7257f4ff3ddbbf3aeb212ebbc4b5ff3e084fe5c5fdb21d691d", "fetched_at": "2026-08-28T04:07:01.288550+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LuckyJayce/ViewPagerIndicator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:23:21.039366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ecc98f416b87be7257f4ff3ddbbf3aeb212ebbc4b5ff3e084fe5c5fdb21d691d", "fetched_at": "2026-08-28T04:07:01.288550+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LuckyJayce/ViewPagerIndicator"}], "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:07:01.288550+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.288550+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.288550+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:23:21.039366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ecc98f416b87be7257f4ff3ddbbf3aeb212ebbc4b5ff3e084fe5c5fdb21d691d", "fetched_at": "2026-08-28T04:07:01.288550+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LuckyJayce/ViewPagerIndicator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.288550+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.288550+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:23:21.039366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ecc98f416b87be7257f4ff3ddbbf3aeb212ebbc4b5ff3e084fe5c5fdb21d691d", "fetched_at": "2026-08-28T04:07:01.288550+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LuckyJayce/ViewPagerIndicator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.288550+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.288550+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.288550+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:23:21.039366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ecc98f416b87be7257f4ff3ddbbf3aeb212ebbc4b5ff3e084fe5c5fdb21d691d", "fetched_at": "2026-08-28T04:07:01.288550+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LuckyJayce/ViewPagerIndicator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.288550+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:01.288550+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:23:21.039366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ecc98f416b87be7257f4ff3ddbbf3aeb212ebbc4b5ff3e084fe5c5fdb21d691d", "fetched_at": "2026-08-28T04:07:01.288550+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LuckyJayce/ViewPagerIndicator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:23:21.039366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ecc98f416b87be7257f4ff3ddbbf3aeb212ebbc4b5ff3e084fe5c5fdb21d691d", "fetched_at": "2026-08-28T04:07:01.288550+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LuckyJayce/ViewPagerIndicator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:23:21.039366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ecc98f416b87be7257f4ff3ddbbf3aeb212ebbc4b5ff3e084fe5c5fdb21d691d", "fetched_at": "2026-08-28T04:07:01.288550+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LuckyJayce/ViewPagerIndicator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:23:21.039366+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ecc98f416b87be7257f4ff3ddbbf3aeb212ebbc4b5ff3e084fe5c5fdb21d691d", "fetched_at": "2026-08-28T04:07:01.288550+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LuckyJayce/ViewPagerIndicator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4344, "days_push": 2451, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}