{"id":13395866,"url":"https://github.com/neokree/MaterialTabs","last_synced_at":"2025-03-13T22:31:03.538Z","repository":{"id":22220836,"uuid":"25553681","full_name":"neokree/MaterialTabs","owner":"neokree","description":"Custom Tabs with Material Design effects","archived":true,"fork":false,"pushed_at":"2019-03-12T01:46:41.000Z","size":18502,"stargazers_count":1394,"open_issues_count":54,"forks_count":382,"subscribers_count":90,"default_branch":"master","last_synced_at":"2024-07-31T18:15:58.390Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":false,"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/neokree.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}},"created_at":"2014-10-22T00:41:55.000Z","updated_at":"2024-05-29T18:31:45.000Z","dependencies_parsed_at":"2022-08-20T23:20:49.307Z","dependency_job_id":null,"html_url":"https://github.com/neokree/MaterialTabs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neokree%2FMaterialTabs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neokree%2FMaterialTabs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neokree%2FMaterialTabs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neokree%2FMaterialTabs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neokree","download_url":"https://codeload.github.com/neokree/MaterialTabs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243493331,"owners_count":20299634,"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-07-30T18:00:34.403Z","updated_at":"2025-03-13T22:31:03.187Z","avatar_url":"https://github.com/neokree.png","language":"Java","readme":"MaterialTabs\n============\n\nCustom Tabs with Material Design animations for pre-Lollipop devices\u003cbr\u003e\n[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-MaterialTabs-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/1105)\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;[![Donate](https://www.paypalobjects.com/en_GB/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=TLLU42DEL36RY)\n\n\n[Download example apk](https://raw.github.com/neokree/MaterialTabs/master/example.apk)\n\nIt requires 14+ API and android support v7 (Toolbar)\n\n## IMPORTANT NOTICE\nThis library is no longer supported.\u003cBR\u003e\nI have not enough time to continue developing at this time and the android design support library implements the tabs features in the better way, so I think it is useless now. If anyone wants to keep alive this library they can send pull requests AFTER testing the code and exmplaining what they have changed and why. Thanks to all contributors\n\nDependency: [Android-UI](https://github.com/markushi/android-ui) Reveal Color View \u003cbr\u003e\nIf you are using MaterialTabs in your app and would like to be listed here, please let me know via [email](mailto:neokree@gmail.com)! \u003cbr\u003e\n\n\u003ch3\u003eHow to use:\u003c/h3\u003e\ndefine it in xml layout with custom attributes\n```xml\n\u003c!-- for Text Tabs --\u003e\n\u003cit.neokree.materialtabs.MaterialTabHost\n        android:id=\"@+id/materialTabHost\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"48dp\"\n        app:textColor=\"#FFFFFF\"\n        app:primaryColor=\"YOUR_PRIMARY_COLOR\"\n        app:accentColor=\"YOUR_ACCENT_COLOR\" /\u003e\n\u003c!-- for icon tabs --\u003e \n\u003cit.neokree.materialtabs.MaterialTabHost\n        android:id=\"@+id/materialTabHost\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"48dp\"\n        app:iconColor=\"#FFFFFF\"\n        app:primaryColor=\"YOUR_PRIMARY_COLOR\"\n        app:accentColor=\"YOUR_ACCENT_COLOR\"\n        app:hasIcons=\"true\"/\u003e\n```\n\u003cem\u003e( I'm working on use wrap_content instead 48dp)\u003c/em\u003e\n\nConnect to java code and add to viewPager\n```java\nMaterialTabHost tabHost;\n\n@Override\n\tprotected void onCreate(Bundle savedInstanceState) {\n\t\tsuper.onCreate(savedInstanceState);\n\t\tsetContentView(R.layout.activity_main);\n\t\t\n\t\ttabHost = (MaterialTabHost) this.findViewById(R.id.materialTabHost);\n\t\tpager = (ViewPager) this.findViewById(R.id.viewpager);\n\t\t\n\t\t// init view pager\n\t\tpagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());\n\t\tpager.setAdapter(pagerAdapter);\n\t\tpager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {\n            @Override\n            public void onPageSelected(int position) {\n            \t// when user do a swipe the selected tab change\n                tabHost.setSelectedNavigationItem(position);\n            }\n        });\n\t\t\n\t\t// insert all tabs from pagerAdapter data\n\t\tfor (int i = 0; i \u003c pagerAdapter.getCount(); i++) {\n            tabHost.addTab(\n                    tabHost.newTab() \n                            .setIcon(getIcon(i))\n                            .setTabListener(this)\n                            );\n    }\n}\n\n@Override\n\tpublic void onTabSelected(MaterialTab tab) {\n\t\t// when the tab is clicked the pager swipe content to the tab position\n\t\tpager.setCurrentItem(tab.getPosition());\n\t\t\n\t}\n```\n\nN.B. Your activity must \u003ccode\u003eextends ActionBarActivity implements MaterialTabListener\u003c/code\u003e\n\n\n### How to import\n###### Android Studio\nAdd this to your build.gradle:\n```java \ndependencies {\n    compile 'it.neokree:MaterialTabs:0.11'\n}\n```\n\n\u003ch3\u003eLimitations\u003c/h3\u003e\nActually, this library have some limitations: \n- No selector animations\n\nThese problems are currently in development\n\n### Fixed and Scrollable tabs. \n###### With text tabs\n[1 - 3] Fixed Tabs \u003cbr\u003e\n[4 - \u0026infin;] Scrollable Tabs\n###### With icon tabs\n[1 - 5] Fixed Tabs \u003cbr\u003e\n[6 - \u0026infin;] Scrollable Tabs\n\n\u003cimg src=\"https://raw.github.com/neokree/MaterialTabs/master/screen.jpg\" alt=\"screenshot\" width=\"300px\" height=\"auto\" /\u003e\n\u003cimg src=\"https://raw.github.com/neokree/MaterialTabs/master/screen-icon.jpg\" alt=\"screenshot\" width=\"300px\" height=\"auto\" /\u003e\n\u003cimg src=\"https://raw.github.com/neokree/MaterialTabs/master/screen-multitab.jpg\" alt=\"screenshot\" width=\"300px\" height=\"auto\" /\u003e\n\u003cimg src=\"https://raw.github.com/neokree/MaterialTabs/master/screen-tablet.jpg\" alt=\"screenshot\" width=\"600px\" height=\"auto\" /\u003e\n","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=TLLU42DEL36RY"],"categories":["Index `(light-weight pages)`","Index","Java","Libs","\u003ca name=\"Menu \u0026 Drawer\"\u003eMenu \u0026 Drawer\u003c/a\u003e"],"sub_categories":["\u003cA NAME=\"Widget\"\u003e\u003c/A\u003eWidget","Personal Blog"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneokree%2FMaterialTabs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneokree%2FMaterialTabs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneokree%2FMaterialTabs/lists"}