Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
A

android-drag-FlowLayout

> 编程语言
Open source

this is a draggable flow layout lib.

705 stars0 likes0 views
WebsiteGitHub

About

this is a draggable flow layout lib.

android-drag-FowLayout

this is a draggable flow layout lib (android 可拖拽的流布局库) . support android-x Sample apk/示例app

特点

  • 1, 类似可拖拽的GridView. 不过gridView 宽度/个数是固定的。 这个布局item宽度是不定的(放不下自动换行)。
  • 2,长按item拖拽,如果要处理点击事件请调用。
java
        
        mDragflowLayout.setOnItemClickListener(new ClickToDeleteItemListenerImpl(R.id.iv_close){
        
             //点击删除成功时回调
            @Override
            protected void onDeleteSuccess(DragFlowLayout dfl, View child, Object data) {
               //your code
            }
        });
  • 3,可嵌套ScrollerView. demo就是。
  • 4, 默认均可拖拽,如果想禁止某些Item拖拽请实现 {@link IDraggable} 接口 .
  • 5, 支持预存储一定个数的item view. 以避免频繁创建.
java
 //预存指定个数的Item. 这些Item会反复使用
 mDragflowLayout.prepareItemsByCount(10);
  • 6, 1.5.0 新增 拖拽状态监听器 和 view观察者。
…

使用步骤

  • 1, 导入下面的gradle 配置。并在xml中添加配置
java
//root gradle
allprojects {
    repositories {
        maven { url "https://jitpack.io" }
    }
}
// if you use androidx . please use '1.8.8-x'
implementation 'com.github.LightSun:android-drag-FlowLayout:1.8.8'
java
 
    
  • 2,设置点击事件处理器 和 数据适配器.
…
  • 3, item管理: 对item的增删改查-,即CRUD. 通过api: mDragflowLayout.getDragItemManager()。 即可得到DragItemManager.
  • 4, 禁止个别Item拖拽。
java
//数据实体实现IDraggable (是否可拖拽) 接口,并且 isDraggable 为false即可
 private static class  TestBean implements IDraggable{
        String text;
        boolean draggable = true; 
        public TestBean(String text) {
            this.text = text;
        }
        @Override
        public boolean isDraggable() {
            return draggable;
        }
    }
  • 5, 如果要使用布局动画,请用ViewGroup.setLayoutTransaction(...) .
  • 6, 更多详情请参见demo.

Gradle Config

java
repositories {
        jcenter()
}
// if you use androidx . please use '1.8.8-x'
compile 'com.heaven7.android.dragflowlayout:dragflowlayout:1.8.8'

API说明

…

重要版本更新日志

  • 1, version(1.5.0)
    • (1) , 增加拖拽状态监听器 和 child view观察者
  • 2, version(1.5.1)
    • (1) , reuse item view for DragItemManager(inner class)
  • 3, version(1.5.5)
    • (1) , fix reuse item view bug.
    • (2) , add method onDeleteSuccess(...) for ClickToDeleteItemListenerImpl
java
  mDragflowLayout.setOnItemClickListener(new ClickToDeleteItemListenerImpl(R.id.iv_close){
            @Override
            protected void onDeleteSuccess(DragFlowLayout dfl, View child, Object data) {
               //your code
            }
        });
  • 4, version(1.6.2)
    • fix bug of issue(#1)
  • 5, version(1.8.3)
    • fix a bug of multi fask click with touch scrol (解决多次点击+滑动的问题).
  • 6,version (1.8.8)  * 为部分伙伴的新需求,开启编辑模式 添加新方法 beginDrag().
  • 7, version(1.8.8-x)
    • 支持android x

一些思想

  • 1 ,最开始我打算用DragHelper做的。但是发现不能将拖拽的child 渲染在最上面。
  • 2, RecyclerView的自定义LayoutManager + onItem touch / 应该也可以.

issue

  • if you have any question or good suggestion about this, please tell me... Thanks!

About me

  • heaven7
  • email: [email protected] or [email protected]

hope

i like technology. especially the open-source technology.And previous i didn't contribute to it caused by i am a little lazy, but now i really want to do some for the open-source. So i hope to share and communicate with the all of you.

License

Copyright 2016  
                heaven7([email protected])

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Javaandroiddragflowflowlayout

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言