最近开发中有流式标签这个功能,网上学了下,来分享一下

Android 流式布局,支持单选、多选等,适合用于产品标签等。


效果图:

 

 

用法:

dependencies { compile 'com.hyman:flowlayout-lib:1.1.2'}

布局:

          

代码:

public class FlowlayoutActivity extends AppCompatActivity {    TagFlowLayout tagFlowLayout;    private List list;    private LayoutInflater layoutInflater;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.flowlayout_activity);        list= new ArrayList<>();        list.add("新闻");        list.add("美食");        list.add("体育");        list.add("生活号");        list.add("预留");        list.add("娱乐");        list.add("杭州市");        list.add("太行");        list.add("舞蹈");        list.add("直播");        list.add("新闻");        list.add("美食");        list.add("体育");        list.add("生活号");        list.add("预留");        list.add("娱乐");        list.add("杭州市");        list.add("太行");        list.add("舞蹈");        list.add("直播");        initView();    }    private void initView(){        layoutInflater = LayoutInflater.from(this);        tagFlowLayout = findViewById(R.id.id_flowlayout);        tagFlowLayout.setAdapter(new TagAdapter(list)        {            @Override            public View getView(FlowLayout parent, int position, String s)            {                TextView tv = (TextView) layoutInflater.inflate(R.layout.flowlayout_item_tv,                        tagFlowLayout, false);                tv.setText(s);                return tv;            }        });        tagFlowLayout.setOnTagClickListener(new TagFlowLayout.OnTagClickListener()        {            @Override            public boolean onTagClick(View view, int position, FlowLayout parent)            {                //得到点击的值                Toast.makeText(getApplicationContext(), list.get(position), Toast.LENGTH_SHORT).show();                return true;            }        });        tagFlowLayout.setOnSelectListener(new TagFlowLayout.OnSelectListener() {            @Override            public void onSelected(Set selectPosSet) {                Log.i("得到下标的集合",selectPosSet.toString());                //得到下标的集合                //Toast.makeText(getApplicationContext(),  selectPosSet.toString()+"s", Toast.LENGTH_SHORT).show();            }        });        /*//预先设置选中        mAdapter.setSelectedList(1,3,5,7,8,9);        //获得所有选中的pos集合        flowLayout.getSelectedList();*/    }}

上图日志:

 

代码文档:https://github.com/hongyangAndroid/FlowLayout

更多相关文章

  1. Android(安卓)Intent传递对象和集合
  2. android activity之间传递bean类型数据
  3. 【Android】以BaseAdapter做适配器的ListView及其性能优化
  4. Android(安卓)调试工具集合
  5. Android错误解决方法大集合
  6. Android常用加密库集合
  7. Android开发实战视频集合
  8. android 应用程序 集合
  9. Android(安卓)开发技巧集合

随机推荐

  1. Android(安卓)ADB 源码分析总结
  2. Android(安卓)Notification 通知
  3. Android修炼之道——Shape
  4. android 开发问题集,android问题总结,and
  5. ImageView的scaletype属性
  6. Android新控件MotionLayout介绍(三)
  7. Android设置Settings实现:PreferenceActiv
  8. Android(安卓)SMS相关操作
  9. EditText 不显示光标 光标消失
  10. Activity详解——Activity的xml配置