一些带搜索功能的app,在搜索栏下面一般会提供一些关键字供用户选择。
也可以根据用户输入的文字,在下一次使用的时候该文字出现在常用关键字里面,只要轻轻一点就可以搜索了,无需再次输入。
关键字可以动态添加,这就要考虑换行的问题了
废话不多说,先上效果图:
先定义2个自定义属性
<declare-styleable name="linewarplayout">
<attr name="magin" format="integer" />
<attr name="itemBg" format="reference"></attr>
</declare-styleable>
magin:关键字之间间隔
itemBg:关键字的背景
.......
算了不写了
上代码
package com.tang.linewraplayout;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class LineWrapLayout extends ViewGroup
{
private int magin = 20;//每个VIEW之间的间距
private List<List<View>> mAllChildViews = new ArrayList<List<View>>();//所有子控件
private List<Integer> mLineHeight =new ArrayList<Integer>();//每一行的高度
public interface OnItemClickListener//点击事件接口
{
public void onClick(View view);
}
private OnItemClickListener clickListener;
public void setOnItemClickListener(OnItemClickListener clickListener)

本文介绍了一个自定义布局LineWrapLayout,用于实现子控件根据父控件行宽自动换行的效果,常见于带搜索功能的APP中的关键字展示。内容包括自定义属性的定义、子控件的布局和点击事件处理,以及使用示例。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



