{"id":13644706,"url":"https://github.com/rtugeek/MaterialBanner","last_synced_at":"2025-04-21T10:34:09.376Z","repository":{"id":83129477,"uuid":"69008013","full_name":"rtugeek/MaterialBanner","owner":"rtugeek","description":"MaterialBanner","archived":false,"fork":false,"pushed_at":"2018-06-08T14:03:32.000Z","size":4720,"stargazers_count":82,"open_issues_count":2,"forks_count":19,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-23T13:17:37.191Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/rtugeek/MaterialBanner","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/rtugeek.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,"roadmap":null,"authors":null}},"created_at":"2016-09-23T08:59:46.000Z","updated_at":"2025-01-04T11:21:13.000Z","dependencies_parsed_at":"2024-01-14T11:18:57.388Z","dependency_job_id":"750b2507-543a-4649-b684-8f79d776a3d5","html_url":"https://github.com/rtugeek/MaterialBanner","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtugeek%2FMaterialBanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtugeek%2FMaterialBanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtugeek%2FMaterialBanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtugeek%2FMaterialBanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rtugeek","download_url":"https://codeload.github.com/rtugeek/MaterialBanner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250040679,"owners_count":21365150,"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:02:11.277Z","updated_at":"2025-04-21T10:34:04.349Z","avatar_url":"https://github.com/rtugeek.png","language":"Java","funding_links":[],"categories":["轮播图"],"sub_categories":[],"readme":"# MaterialBanner\n\n## ScreenShot:\n![](https://github.com/rtugeek/MaterialBanner/blob/master/screenshot/GIF.gif)\n\n\n## Idea from Google Trips:\n![](https://github.com/rtugeek/MaterialBanner/blob/master/screenshot/googletrips.jpg)\n\n\n##[Demo APK](https://github.com/rtugeek/MaterialBanner/releases/download/1.0.0/Demo.apk)\n\n### Attrs\n|attr|format|default|\n|---|---|---|\n|indicatorMargin|dimension|10dp|\n|indicatorInside|boolean|true|\n|indicatorGravity|flag:left,center,right|left|\n|match|boolean|false|\n\n\n### Gradle:\n[![](https://jitpack.io/v/rtugeek/materialbanner.svg)](https://jitpack.io/#rtugeek/materialbanner) [![API](https://img.shields.io/badge/API-8%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=9) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-MaterialBanner-green.svg?style=true)](https://android-arsenal.com/details/1/3118)\n\nStep 1. Add the JitPack repository in your root build.gradle at the end of repositories:\n```\n  allprojects {\n\t\trepositories {\n\t\t\t...\n\t\t\tmaven { url \"https://jitpack.io\" }\n\t\t}\n\t}\n```\nStep 2. Add the dependency\n```\n  compile 'com.github.rtugeek:materialbanner:1.0.2'\n```\n\nXML\n```xml\n  \u003ccom.freegeek.android.materialbanner.MaterialBanner\n      android:id=\"@+id/material_banner\"\n      android:layout_width=\"match_parent\"\n      app:match=\"true\"\n      android:layout_height=\"200dp\"/\u003e\n```\n\n```java\n  MaterialBanner materialBanner = (MaterialBanner) findViewById(R.id.material_banner);\n  materialBanner.setPages(new SimpleViewHolderCreator(), data)\n            .setIndicator(circlePageIndicator);\n  //set circle indicator\n  materialBanner.setIndicator(new CirclePageIndicator(this));\n  //indicators:\n  //CirclePageIndicator,IconPageIndicator,LinePageIndicator\n  //Custom indicator view needs to implement com.freegeek.android.materialbanner.view.indicator.PageIndicator\n  \n```\n\n[More usage](https://github.com/rtugeek/MaterialBanner/blob/master/app/src/main/java/com/freegeek/android/materialbanner/demo/MainActivity.java)\n\nListener\n```java\n  \n  materialBanner.setOnItemClickListener(new MaterialBanner.OnItemClickListener() {\n            @Override\n            public void onItemClick(int position) {\n                \n            }\n        });\n  \n  materialBanner.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {\n            @Override\n            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {\n\n            }\n\n            @Override\n            public void onPageSelected(int position) {\n                textView.setText(\"My hometown: page \" + ++position);\n            }\n\n            @Override\n            public void onPageScrollStateChanged(int state) {\n\n            }\n        });\n        \n        \n```\n\n### Customize\n1.Create Holder,[See also SimpleHolder](https://github.com/rtugeek/MaterialBanner/blob/master/lib/src/main/java/com/freegeek/android/materialbanner/simple/SimpleHolder.java)[SimpleBannerData](https://github.com/rtugeek/MaterialBanner/blob/master/lib/src/main/java/com/freegeek/android/materialbanner/simple/SimpleBannerData.java)\n```java\npublic class YourHolder implements Holder\u003cYourData\u003e {\n\n    @Override\n    public View createView(Context context) {\n        View view = LayoutInflater.from(context).inflate(R.layout.simple_banner_item,null);\n        //init your view here\n        return view;\n    }\n\n    @Override\n    public void updateUI(Context context, int position, YourData data) {\n        //update your view here\n    }\n\n}\n\n```\n2.Create HolderCreator\n```java\npublic class YourHolderCreator implements ViewHolderCreator{\n\n    @Override\n    public YourHolder createHolder() {\n        return new YourHolder();\n    }\n\n}\n```\n3.Set your creator\n```java\nmaterialBanner.setPages(new YourHolderCreator(), list);\n```\n\n\n\n**Spread the word**\n\n\u003ca href=\"https://twitter.com/intent/tweet?text=Check%20out%20the%MaterialBanner%20library%20on%20Github:%20https://github.com/rtugeek/MaterialBanner/\" target=\"_blank\" title=\"share to twitter\" style=\"width:100%\"\u003e\u003cimg src=\"https://github.com/PhilJay/MPAndroidChart/blob/master/design/twitter_icon.png\" title=\"Share on Twitter\" width=\"35\" height=35 /\u003e\n\u003ca href=\"https://plus.google.com/share?url=https://github.com/rtugeek/MaterialBanner/\" target=\"_blank\" title=\"share to Google+\" style=\"width:100%\"\u003e\u003cimg src=\"https://github.com/PhilJay/MPAndroidChart/blob/master/design/googleplus_icon.png\" title=\"Share on Google+\" width=\"35\" height=35 /\u003e\n\u003ca href=\"https://www.facebook.com/sharer/sharer.php?u=https://github.com/rtugeek/MaterialBanner/\" target=\"_blank\" title=\"share to facebook\" style=\"width:100%\"\u003e\u003cimg src=\"https://github.com/PhilJay/MPAndroidChart/blob/master/design/facebook_icon.png\" title=\"Share on Facebook\" width=\"35\" height=35 /\u003e\n\n## Thanks to:\n[Android-ConvenientBanner](https://github.com/saiwu-bigkoo/Android-ConvenientBanner)\t\n[ViewPagerIndicator](https://github.com/JakeWharton/ViewPagerIndicator)\n\n## License\n\n            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE\n                    Version 2, December 2004\n   \n    Copyright (C) 2004 Jack Fu \u003crtugeek@gmail.com\u003e\n   \n    Everyone is permitted to copy and distribute verbatim or modified\n    copies of this license document, and changing it is allowed as long\n    as the name is changed.\n   \n            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE\n    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n   \n     0. You just DO WHAT THE FUCK YOU WANT TO.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtugeek%2FMaterialBanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frtugeek%2FMaterialBanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtugeek%2FMaterialBanner/lists"}