概述
公司的项目需要使用流式布局显示选项,在网上看了不少的类似的东西,找了好久发现了一个比较好用库。
首先导入依赖:
implementation 'com.nex3z:flow-layout:1.0.0'
在Github上开源:查看地址
布局代码:
<com.nex3z.flowlayout.FlowLayout
android:id="@+id/flow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:flChildSpacing="7dp"
app:flRowSpacing="8dp" />
使用方法:
// 获取控件
FlowLayout flowLayout = (FlowLayout) findViewById(R.id.flow);
// 循环添加标签
for (int i = 0; i < strList.size(); i++) {
TextView textView = buildLabel(strList.get(i));
flowLayout.addView(textView);
}
flowlayout就是一个布局,像这样添加textView进去,就完成初始化了。
属性说明(中文版):
// 默认为true,flase只显示一行
flowLayout.setFlow(false);
// 这个三个属性都是间距,横纵的距离
flowLayout.setChildSpacing(8);
flowLayout.setRowSpacing(8);
flowLayout.setChildSpacingForLastRow(8);
//最大行数,如果设置为2那么显示出的行数只有两行。
flowLayout.setMaxRows(2);
//布局中这个属性默认是false,为true排列方向从右到左
app:flRtl="true"
完成效果代码如下:
for (int i = 0; i < strList.size(); i++) {
TextView textView = buildLabel(strList.get(i));
flowLayout.addView(textView);
}
private TextView buildLabel(final String text) {
TextView textView = new TextView(this);
textView.setText(text);
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
textView.setPadding((int) dpToPx(16), (int) dpToPx(8), (int) dpToPx(16), (int) dpToPx(8));
textView.setBackgroundResource(R.drawable.bg_gray);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
et.setText(text);
}
});
return textView;
}
private float dpToPx(float dp) {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics());
}
效果还是挺好用的,颜色自己设置。特性就是可以自动根据标签文字的长度自动换行。
最后
以上就是奋斗小蝴蝶为你收集整理的Android之实现流式标签的全部内容,希望文章能够帮你解决Android之实现流式标签所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复