流式布局FlowLayout
<h2>样式展示</h2>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/68a2b2fc85b38dfa78e374a8645e327a?showdoc=.jpg" alt="" /></p>
<h2>示例代码</h2>
<p>一、使用FlowLayout</p>
<pre><code class="language-xml"><com.hongshi.uilibrary.view.FlowLayout
android:id="@+id/flowLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" /></code></pre>
<pre><code class="language-java"> private void flowlayoutinit() {
final String[] address = new String[]{"杭州", "乌鲁木齐", "哈尔滨", "比其肯布尔古斯台", "漠北", "那然色布斯台音布拉格", "杭州", "乌鲁木齐"};
for (int i = 0; i < address.length; i++) {
View mView = LayoutInflater.from(this).inflate(R.layout.flow_layout, null);
LinearLayout lay_search_flow_item = (LinearLayout) mView.findViewById(R.id.lay_flow_item);
TextView tv_search_flow_item = (TextView) mView.findViewById(R.id.tv_flow_item);
tv_search_flow_item.setText(address[i]);
final int finalI = i;
lay_search_flow_item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FlowLayoutActivity.this, address[finalI], Toast.LENGTH_SHORT).show();
}
});
flowLayout.addView(mView);
}
}</code></pre>
<p>二、FlexboxLayout</p>
<pre><code class="language-xml"><com.google.android.flexbox.FlexboxLayout
android:id="@+id/flexbox_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:flexWrap="wrap" /></code></pre>
<pre><code class="language-java">private void flexboxlayoutinit() {
final String[] address = new String[]{"杭州", "乌鲁木齐", "哈尔滨", "比其肯布尔古斯台", "漠北", "那然色布斯台音布拉格", "杭州", "乌鲁木齐"};
for (int i = 0; i < address.length; i++) {
View mView = LayoutInflater.from(this).inflate(R.layout.flow_layout, null);
LinearLayout lay_search_flow_item = (LinearLayout) mView.findViewById(R.id.lay_flow_item);
TextView tv_search_flow_item = (TextView) mView.findViewById(R.id.tv_flow_item);
tv_search_flow_item.setText(address[i]);
final int finalI = i;
lay_search_flow_item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FlowLayoutActivity.this, address[finalI], Toast.LENGTH_SHORT).show();
}
});
flexboxLayout.addView(mView);
}
}</code></pre>
<h2>控件常用api</h2>
<ul>
<li>FlowLayout extends ViewGroup,因而有ViewGroup的公共方法addView(View child)与removeAllViews()等方法,基于该公共方法,大多数情况下就可以满足需求。</li>
</ul>