{"id":13604313,"url":"https://github.com/eriffanani/TextViewReadMore","last_synced_at":"2025-04-11T23:32:16.607Z","repository":{"id":47054979,"uuid":"486898219","full_name":"eriffanani/TextViewReadMore","owner":"eriffanani","description":"Android library for creating expand button on your long textview ","archived":false,"fork":false,"pushed_at":"2023-08-28T06:41:16.000Z","size":360,"stargazers_count":13,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-07T08:42:47.264Z","etag":null,"topics":["android","android-library","endlesstext","expandabletext","expandabletextview","java","kotlin","longtext","readmore","textview-android","textviews"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"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/eriffanani.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-04-29T08:38:41.000Z","updated_at":"2024-07-20T07:22:31.000Z","dependencies_parsed_at":"2024-01-16T23:29:59.525Z","dependency_job_id":"d5eca93e-dd5f-42ba-ae83-91f82a409163","html_url":"https://github.com/eriffanani/TextViewReadMore","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eriffanani%2FTextViewReadMore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eriffanani%2FTextViewReadMore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eriffanani%2FTextViewReadMore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eriffanani%2FTextViewReadMore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eriffanani","download_url":"https://codeload.github.com/eriffanani/TextViewReadMore/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248495122,"owners_count":21113575,"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":["android","android-library","endlesstext","expandabletext","expandabletextview","java","kotlin","longtext","readmore","textview-android","textviews"],"created_at":"2024-08-01T19:00:43.383Z","updated_at":"2025-04-11T23:32:11.597Z","avatar_url":"https://github.com/eriffanani.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# TextView Read More\nMake your long textview setup easily and quickly\n\n## Installation\n#### settings.gradle\n```kotlin\ndependencyResolutionManagement {\n    repositories {\n        maven { url 'https://jitpack.io' }\n    }\n}\n```\n\n#### build.gradle(app)\n```kotlin\ndependencies {\n    implementation 'com.github.eriffanani:TextViewReadMore:4.1.0'\n}\n```\n\n## How To Use\n* Basic\n```xml\n\u003ccom.erif.readmoretextview.TextViewReadMore\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"wrap_content\"\n    app:readMoreMaxLines=\"3\" (Default 1)\n    android:text=\"YOUR TEXT HERE\"/\u003e\n```\n![basic](https://user-images.githubusercontent.com/26743731/167334745-3915b937-a0b4-4524-a0b4-47b165143ec7.png)\n\n#### Styling\n* Expand\n```xml\n\u003ccom.erif.readmoretextview.TextViewReadMore\n    app:readMoreMaxLines=\"3\" (Default 1)\n    app:expandText=\"Open Text\" (Default \"Read More\")\n    app:expandTextColor=\"@color/teal_200\" (Default Color.BLUE)\n    app:expandTextStyle=\"bold|italic\" (Default normal)\n    app:expandTextUnderline=\"true\" (Default false)\n    android:text=\"YOUR TEXT HERE\"/\u003e\n```\n![styling](https://user-images.githubusercontent.com/26743731/167335646-86eb9860-b40e-4281-be49-644993cd49e1.png)\n\n* Collapse\n```xml\n\u003ccom.erif.readmoretextview.TextViewReadMore\n    app:collapseText=\"Close Text\" (Default \"Close\")\n    app:collapseTextColor=\"@color/teal_200\" (Default Color.BLUE)\n    app:collapseTextStyle=\"bold|italic\" (Default normal)\n    app:collapseTextUnderline=\"true\" (Default false)\n    app:collapsed=\"false\" (Default true)/\u003e\n```\n\n### Animation\n```xml\n\u003ccom.erif.readmoretextview.TextViewReadMore\n        app:duration=\"200\"\n        app:interpolator=\"\"\n        app:interpolatorExpand=\"bounce\"\n        app:durationExpand=\"800\"\n        app:interpolatorCollapse=\"anticipate_overshoot\"\n        app:durationCollapse=\"900\"/\u003e\n\n\u003c!--Animation Interpolator--\u003e\n\u003cflag name=\"decelerate\"/\u003e\n\u003cflag name=\"accelerate\"/\u003e\n\u003cflag name=\"anticipate_overshoot\"/\u003e\n\u003cflag name=\"anticipate\"/\u003e\n\u003cflag name=\"bounce\"/\u003e\n\u003cflag name=\"fast_out_linear_in\"/\u003e\n\u003cflag name=\"fast_out_slow_in\"/\u003e\n\u003cflag name=\"linear_out_slow_in\"/\u003e\n```\n\n### Ellipsis Type\n```xml\n\u003ccom.erif.readmoretextview.TextViewReadMore\n    app:ellipsisType=\"none\" (Default dots)/\u003e\n```\n### Action\n```xml\n\u003ccom.erif.readmoretextview.TextViewReadMore\n    app:actionClickColor=\"@color/colorRed\" (Default @color/text_view_read_more_button_hover_color)/\u003e\n```\n```java\nTextViewReadMore txtReadMore = findViewById(R.id.txtReadMore);\ntxtReadMore.onClickExpand(v -\u003e txtReadMore.toggle());\ntxtReadMore.onClickCollapse(v -\u003e txtReadMore.toggle());\n```\n\n### Listener\n* Java\n```Java\ntxtReadMore.toggleListener(collapsed -\u003e { // TODO ACTION });\n```\n* Kotlin\n```kotlin\ntxtReadMore.toggleListener { collapsed -\u003e // TODO ACTION }\n```\n\n## Result\n\u003cimg src=\"https://github.com/eriffanani/TextViewReadMore/assets/26743731/aaee9b13-b095-4f3e-95f4-6319c3e2dbc9\" width=\"300\"/\u003e\n\n### With recyclerview\n* Use collapse function to onBindViewHolder\n```java\n/** \n    item.isCollapsed() is variable from your item to store and save state of \n    textview (collapsed/expanded) when item displayed again from RecyclerView scroll \n*/\nholder.text.collapsed(item.isCollapsed());\n```\n* Use Toggle\n```java\nholder.text.onClickExpand(v -\u003e holder.text.toggle());\nholder.text.onClickCollapse(v -\u003e holder.text.toggle());\nholder.text.toggleListener(collapsed -\u003e {\n    item.setCollapsed(collapsed);\n    notifyItemChanged(position);\n});\n```\n* Use Collapse Properties\n```java\n// onClickExpand or onClickCollapse \nholder.text.onClickExpand(v -\u003e {\n    boolean status = !item.isCollapsed();\n    holder.text.collapsed(status);\n    item.setCollapsed(status);\n    notifyItemChanged(position);\n});\n```\n## Result\n\u003cimg src=\"https://github.com/eriffanani/TextViewReadMore/assets/26743731/9315357b-6974-4796-a4db-df2d5bd56d74\" width=\"300\"/\u003e\n\n#### Information\nThis library is still being developed further, please provide feedback if you find a bug. Thank you\n### Licence\n```license\nCopyright 2022 Mukhammad Erif Fanani\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n  http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feriffanani%2FTextViewReadMore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feriffanani%2FTextViewReadMore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feriffanani%2FTextViewReadMore/lists"}