免费建站软件,商标起名生成器,如何做亚马逊跨境电商,深圳建设工程交易服务网网址最近需要用到微信的标签功能(如下图所示)。该功能可以添加已有标签#xff0c;也可以自定义标签。也可以删除已编辑菜单。研究了一番。发现还是挺有意思的#xff0c;模拟实现相关功能。该功能使用类似FlowLayout的功能。Flowlayout为一个开源软件(https://github.com/ApmeM/…最近需要用到微信的标签功能(如下图所示)。该功能可以添加已有标签也可以自定义标签。也可以删除已编辑菜单。研究了一番。发现还是挺有意思的模拟实现相关功能。该功能使用类似FlowLayout的功能。Flowlayout为一个开源软件(https://github.com/ApmeM/android-flowlayout)功能为自动换行的布局类型import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.view.ViewGroup;/**** author RAW*/public class FlowLayout extends ViewGroup {private final static int PAD_H 2, PAD_V 2; // Space between child views.private int mHeight;public FlowLayout(Context context) {super(context);}public FlowLayout(Context context, AttributeSet attrs) {super(context, attrs);}Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {assert (MeasureSpec.getMode(widthMeasureSpec) ! MeasureSpec.UNSPECIFIED);final int width MeasureSpec.getSize(widthMeasureSpec) - getPaddingLeft() - getPaddingRight();int height MeasureSpec.getSize(heightMeasureSpec) - getPaddingTop() - getPaddingBottom();final int count getChildCount();int xpos getPaddingLeft();int ypos getPaddingTop();int childHeightMeasureSpec;if(MeasureSpec.getMode(heightMeasureSpec) MeasureSpec.AT_MOST)childHeightMeasureSpec MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST);elsechildHeightMeasureSpec MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);mHeight 0;for(int i 0; i count; i) {final View child getChildAt(i);if(child.getVisibility() ! GONE) {child.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST), childHeightMeasureSpec);final int childw child.getMeasuredWidth();mHeight Math.max(mHeight, child.getMeasuredHeight() PAD_V);if(xpos childw width) {xpos getPaddingLeft();ypos mHeight;}xpos childw PAD_H;}}if(MeasureSpec.getMode(heightMeasureSpec) MeasureSpec.UNSPECIFIED) {height ypos mHeight;} else if(MeasureSpec.getMode(heightMeasureSpec) MeasureSpec.AT_MOST) {if(ypos mHeight height) {height ypos mHeight;}}height 5; // Fudge to avoid clipping bottom of last row.setMeasuredDimension(width, height);} // end onMeasure()Overrideprotected void onLayout(boolean changed, int l, int t, int r, int b) {final int width r - l;int xpos getPaddingLeft();int ypos getPaddingTop();for(int i 0; i getChildCount(); i) {final View child getChildAt(i);if(child.getVisibility() ! GONE) {final int childw child.getMeasuredWidth();final int childh child.getMeasuredHeight();if(xpos childw width) {xpos getPaddingLeft();ypos mHeight;}child.layout(xpos, ypos, xpos childw, ypos childh);xpos childw PAD_H;}}} // end onLayout()}以上所述是小编给大家介绍的android模仿微信收藏文件的标签处理功能希望对大家有所帮助如果大家有任何疑问请给我留言小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持