{"id":21130262,"url":"https://github.com/rajasharan/RearrangeableLayout","last_synced_at":"2025-07-09T01:32:57.484Z","repository":{"id":34044378,"uuid":"37818365","full_name":"rajasharan/RearrangeableLayout","owner":"rajasharan","description":"An android layout to re-arrange child views via dragging","archived":false,"fork":false,"pushed_at":"2015-07-01T01:31:08.000Z","size":9134,"stargazers_count":273,"open_issues_count":2,"forks_count":57,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-11-13T15:13:59.958Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"novnc/noVNC","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rajasharan.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":"2015-06-21T17:27:09.000Z","updated_at":"2024-11-13T10:24:31.000Z","dependencies_parsed_at":"2022-07-14T03:00:43.528Z","dependency_job_id":null,"html_url":"https://github.com/rajasharan/RearrangeableLayout","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajasharan%2FRearrangeableLayout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajasharan%2FRearrangeableLayout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajasharan%2FRearrangeableLayout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajasharan%2FRearrangeableLayout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajasharan","download_url":"https://codeload.github.com/rajasharan/RearrangeableLayout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225476370,"owners_count":17480215,"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-11-20T05:32:30.050Z","updated_at":"2024-11-20T05:32:38.905Z","avatar_url":"https://github.com/rajasharan.png","language":"Java","funding_links":[],"categories":["Libs"],"sub_categories":["\u003cA NAME=\"Widget\"\u003e\u003c/A\u003eWidget"],"readme":"# Android Rearrangeable Layout\nAn android layout to re-arrange child views via dragging\n\n[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-RearrangeableLayout-green.svg?style=flat)](https://android-arsenal.com/details/1/2037)\n\n## Screencast Demo\n![](/screencast.gif)\n\n## Layout Usage\nAll the child views are draggable once the layout is added to an activity\n([activity_main.xml](/demo/src/main/res/layout/activity_main.xml))\n```xml\n\n\u003ccom.rajasharan.layout.RearrangeableLayout\n    xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    android:id=\"@+id/rearrangeable_layout\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:clipToPadding=\"false\"\n    app:outlineWidth=\"2dp\"\n    app:outlineColor=\"@color/cyan\"\n    app:selectionAlpha=\"0.5\"\n    app:selectionZoom=\"1.2\"\n    \u003e\n\n    \u003c!-- add child views with `android:id` attr to\n         save position during orientation change --\u003e\n\n    \u003cTextView\n        android:id=\"@+id/textview_1\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Sample Demo with very large text that will overflow in width\"\n        android:textSize=\"30sp\"\n        android:background=\"@android:color/holo_green_light\"\n        android:layout_margin=\"15dp\"\n        /\u003e\n\n    \u003c!-- more child views --\u003e\n\n\u003c/com.rajasharan.layout.RearrangeableLayout\u003e\n```\n\n## Child Position Listener\nAdd a `ChildPositionListener` to the root layout to receive updates whenever any child view is dragged\n([MainActivity.java](/demo/src/main/java/com/rajasharan/demo/MainActivity.java))\n```java\n\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n    super.onCreate(savedInstanceState);\n    setContentView(R.layout.activity_main);\n\n    root = (RearrangeableLayout) findViewById(R.id.rearrangeable_layout);\n    root.setChildPositionListener(new RearrangeableLayout.ChildPositionListener() {\n        @Override\n        public void onChildMoved(View childView, Rect oldPosition, Rect newPosition) {\n            Log.d(TAG, childView.toString());\n            Log.d(TAG, oldPosition.toString() + \" -\u003e \" + newPosition.toString());\n        }\n    });\n}\n```\n\n## [License](/LICENSE)\n    The MIT License (MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajasharan%2FRearrangeableLayout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajasharan%2FRearrangeableLayout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajasharan%2FRearrangeableLayout/lists"}