android开发之多行标签热点的相关介绍
来源:爱站网时间:2022-12-23编辑:网友分享
android开发之多行标签热点的相关介绍今天就让爱站技术频道小编给大家分享下吧,这里对多行标签热点的实例代码做出了总结,有需要的朋友随时都可以来查看,希望文章对你有用处。
代码如下:
package com.test.mytest.widget;
import java.util.List;
import android.content.Context;
import android.os.Handler;
import android.util.AttributeSet;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MutipleLabelLayout extends LinearLayout {
public MutipleLabelLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MutipleLabelLayout(Context context) {
super(context);
}
public MutipleLabelLayout(Context context, List<String> list) {
super(context);
mList = list;
mContext = context;
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
init();
}
}, 500);
}
private void init() {
this.setOrientation(LinearLayout.VERTICAL);
LinearLayout row = new LinearLayout(mContext);
row.setOrientation(LinearLayout.HORIZONTAL);
this.addView(row);
int rowWidth = this.getMeasuredWidth();
int viewSumWidth = 0;
for (String label : mList) {
TextView labelView = new TextView(mContext);
labelView.setText(label);
labelView.setPadding(10, 0, 10, 0);
labelView.setLayoutParams(new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
row.addView(labelView);
labelView.measure(0, 0);
viewSumWidth += labelView.getMeasuredWidth();
if (viewSumWidth > rowWidth) {
row.removeView(labelView);
row = new LinearLayout(mContext);
row.setOrientation(LinearLayout.HORIZONTAL);
this.addView(row);
row.addView(labelView);
labelView.measure(0, 0);
viewSumWidth = labelView.getMeasuredWidth();
}
// System.out.println("viewSumWidth: " + viewSumWidth);
// System.out.println("rowWidth: " + rowWidth);
}
}
private List<String> mList;
private Context mContext;
}
android开发之多行标签热点的相关介绍分享到这里就完结了,还有哪些地方需要小编指点的话就来网站吧,js.aizhan.com平台里面发布的文章内容都可以尽情查阅。