Android 自动换行流式布局的RadioGroup
2013-12-04 15:53
656 查看
效果图
用法
使用FlowRadioGroup代替RadioGroup代码
import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.RadioGroup; /** * 流式布局的RadioGroup */ public class FlowRadioGroup extends RadioGroup { public FlowRadioGroup(Context context) { super(context); } public FlowRadioGroup(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int maxWidth = MeasureSpec.getSize(widthMeasureSpec); int childCount = getChildCount(); int x = 0; int y = 0; int row = 0; for (int index = 0; index < childCount; index++) { final View child = getChildAt(index); if (child.getVisibility() != View.GONE) { child.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); // 此处增加onlayout中的换行判断,用于计算所需的高度 int width = child.getMeasuredWidth(); int height = child.getMeasuredHeight(); x += width; y = row * height + height; if (x > maxWidth) { x = width; row++; y = row * height + height; } } } // 设置容器所需的宽度和高度 setMeasuredDimension(maxWidth, y); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { final int childCount = getChildCount(); int maxWidth = r - l; int x = 0; int y = 0; int row = 0; for (int i = 0; i < childCount; i++) { final View child = this.getChildAt(i); if (child.getVisibility() != View.GONE) { int width = child.getMeasuredWidth(); int height = child.getMeasuredHeight(); x += width; y = row * height + height; if (x > maxWidth) { x = width; row++; y = row * height + height; } child.layout(x - width, y - height, x, y); } } } }
相关文章推荐
- Android 自动换行流式布局的RadioGroup
- Android:禁止ScrollView在子控件的布局改变时自动滚动的的方法
- Android 自定义控件-自动换行的流线性布局-DragFlowLayout
- android 开发中进入一个activity界面软键盘自动弹出解决(布局中有edittext)
- android app开发之仿qq个人标签,自动换行的布局
- android 编写布局文件Alt+/不能自动补全
- android之自定义ViewGroup和自动换行的布局的实现
- 神奇的listView实现自动显示隐藏布局Android代码
- android之自定义ViewGroup和自动换行的布局的实现
- android之自定义ViewGroup和自动换行的布局的实现
- android之自定义ViewGroup和自动换行的布局的实现
- android中隐藏与显示软键盘及不自动弹出键盘及软键盘将布局顶上去的实现方法
- android之自定义ViewGroup和自动换行的布局的实现
- Android绑定EditText自动弹出自定义软键盘不同按键设置不同背景的实现(自动向上顶适应布局)
- android之自定义ViewGroup和自动换行的布局的实现
- android之自定义ViewGroup和自动换行的布局的实现
- Android 真正的九宫格布局 横屏竖屏上下均自动居中
- Android快速实现横竖屏切换布局自动更改
- android之自定义ViewGroup和自动换行的布局的实现
- android 自动换行的流式布局