美文网首页
流式布局 ChipsLayoutManager

流式布局 ChipsLayoutManager

作者: 小耗子_20da | 来源:发表于2020-05-27 10:47 被阅读0次

网上找了好多流式布局的LayoutManager,目前发现这个是最好的,现在将使用方法记录一下,免得下次忘记。
作者github地址

使用方法

1、添加依赖

allprojects {
    repositories {
        jcenter()
    }
}
dependencies {
    implementation 'com.beloo.widget:ChipsLayoutManager:0.3.7@aar'
}

2、创建ChipsLayoutManager

ChipsLayoutManager chipsLayoutManager = ChipsLayoutManager.newBuilder(this)
    //为一行中的所有项目设置垂直重力。 Default = Gravity.CENTER_VERTICAL
    .setChildGravity(Gravity.CENTER_VERTICAL)
    //是否可以滚动. TRUE by default
    .setScrollingEnabled(true)
    //在特定行中设置最大视图计数
    .setMaxViewsInRow(10)
    //设置重力解算器,在这里你可以确定物体的重力位置。这个方法比前一个方法有优先权
    .setGravityResolver(new IChildGravityResolver() {
        @Override
        public int getItemGravity(int position) {
            return Gravity.RIGHT;
        }
    })
    //由于您的条件,您可以中断行。对于那个视图,行断路器应该返回true
    .setRowBreaker(new IRowBreaker() {
        @Override
        public boolean isItemBreakRow(@IntRange(from = 0) int position) {
            //意思是在 position == 3 或 position == 7的时候,
            // 该行结束,直接换到下一行,可以理解为回车
            return position == 3 || position == 7;
        }
    })
    //布局管理器的layoutOrientation,可以是垂直的,也可以是水平的。在默认情况下水平
    .setOrientation(ChipsLayoutManager.HORIZONTAL)
    // 对于已完成行中的视图的行策略可以是
    //STRATEGY_DEFAULT 左对齐,右边置空
    //STRATEGY_FILL_VIEW 填满整个RecyclerView剩余控件
    //STRATEGY_FILL_SPACE 两边对齐,中间置空
    //STRATEGY_CENTER //中间对齐,两边置空
    .setRowStrategy(ChipsLayoutManager.STRATEGY_DEFAULT)
    // 是否对最后一行应用策略。默认false
    .withLastRow(false)
    .build();

别的还好理解,重力解析器这块没看出来效果,所以没有具体备注。

  //其实默认设置以及够用了
 ChipsLayoutManager.newBuilder(this).build()

3、为RecyclerView设置LayoutManager

mBinding.rvAllTag.setLayoutManager(chipsLayoutManager);

\color{red}{注意:RecyclerView高度不确定时慎用,测试时发现部分标签没有显示出来}

   android:layout_height="wrap_content"

相关文章

网友评论

      本文标题:流式布局 ChipsLayoutManager

      本文链接:https://www.haomeiwen.com/subject/geoiahtx.html