FlowView
關(guān)于
FlowView是一款流布局控件,采用Adapter模式访娶,可以自定義item又固,更加靈活,使用起來就和ListView與BaseAdapter搭配一樣簡單须教,提供各種對齊方式皿渗,可以自適應(yīng)高度,也可以設(shè)置item的高度轻腺,可以控制item的最大顯示行數(shù)...
演示
先來看看效果吧乐疆!
效果圖
添加依賴
- 使用Gradle
// 注:如果添加依賴成功,則此句不必添加贬养,此句作用僅為當(dāng)項目在被審核時挤土,緊急需要使用時添加
allprojects {
repositories {
...
// 如果添加依賴時,報找不到項目時(項目正在審核)误算,可以添加此句maven地址仰美,如果找到項目,可不必添加
maven { url "https://dl.bintray.com/albertlii/android-maven/" }
}
}
dependencies {
compile 'com.liyi.view:flowview:1.2.1'
}
- 使用Maven
<dependency>
<groupId>com.liyi.view</groupId>
<artifactId>flowview</artifactId>
<version>1.2.1</version>
<type>pom</type>
</dependency>
自定義屬性
-
flow_horizontalAlign(item 在一行中的橫向?qū)R方式儿礼,默認(rèn)為 left)
- left(item 左對齊)
- middle(item 橫向居中對齊)
- right(item 右對齊)
-
flow_verticalAlign(item 在一行中的縱向?qū)R方式咖杂,默認(rèn)為 middle,當(dāng)設(shè)置 flow_height 時蚊夫,此屬性無效)
- top(item 上對齊)
- middle(item 縱向居中對齊)
- bottom(item 底部對齊)
flow_height(流布局的 item 的高度诉字,默認(rèn)為自適應(yīng))
flow_horizontalSpace(流布局的 item 橫向間距,默認(rèn)為 10px)
flow_verticalSpace(流布局的 item 縱向間距这橙,默認(rèn)為 10px)
flow_maxRow(流布局最多顯示的行數(shù)奏窑,默認(rèn)為不限制)
使用方法
XML 中 添加 FlowView
<com.liyi.flow.FlowView
android:id="@+id/flowVi"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
代碼中使用 FlowView
三種適配器
-
SimpleFlowAdapter
:簡用適配器,直接使用屈扎,封裝有默認(rèn)布局埃唯,demo示例 -
QuickFlowAdapter
:快捷適配器,繼承自BaseFlowAdapter
,demo示例 -
BaseFlowAdapter
:基礎(chǔ)適配器鹰晨,不推薦直接使用墨叛,推薦使用QuickFlowAdapter
簡單示例
注:此處使用的是 SimpleFlowAdapter止毕,SimpleFlowAdapter 必須設(shè)置 setLoadData() 來處理數(shù)據(jù)
mAdapter = new SimpleFlowAdapter(mList);
mAdapter.setLoadData(new SimpleFlowAdapter.LoadData<String>() {
@Override
public void onLoadData(int position, String item, TextView textView) {
textView.setText(item);
}
});
flowView.setAdapter(mAdapter);
// 單擊事件
flowView.setOnItemClickListener(new FlowView.OnItemClickListener() {
@Override
public void onItemClick(int position, View view) {
Toast.makeText(SimpleFlowActivity.this, "我是" + position + "號", Toast.LENGTH_SHORT).show();
}
});
github傳送門
https://github.com/albert-lii/FlowView