Android中自定义组合控件
在开发中,有时候为了组件的重复利用,会把在不同地方使用的相同布局提出来,作为一个template模板,方便重复利用,比如我要封装一个listview列表的item,就可以这么做1.定义一个类继承 LinearLayout 布局文件里暂 放一个 ImageView和TextView,根据实际情况自行修改需要的控件即可。public class CartColumItemView ex...
·
在开发中,有时候为了组件的重复利用,会把在不同地方使用的相同布局提出来,作为一个template模板,方便重复利用,
比如我要封装一个listview列表的item,就可以这么做
1.定义一个类继承 LinearLayout 布局文件里暂 放一个 ImageView和TextView,根据实际情况自行修改需要的控件即可。
public class CartColumItemView extends LinearLayout {
private LinearLayout ll_cartitems;
private ImageView iv;
private Context context;
public CartColumItemView(Context context) {
this(context, null);
this.context = context;
}
public CartColumItemView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public CartColumItemView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
this.context = context;
init(context, attrs, defStyleAttr);
}
private void init(Context context, AttributeSet attrs, int defStyleAttr) {
this.context = context;
inflate(context, R.layout.cart_goods_item, this);
ll_cartitems = findViewById(R.id.ll_cartitems);
iv = findViewById(R.id.iv);
}
public void setData(Goods infodata) {
// 加载网络图片
Glide.with(context).load(infodata.imgurl).into(iv);
}
}
2.下面再介绍一下,可以重复生成多个以上 1 这种布局的方法
同理再定义一个类 集成 LinearLayout
public class CartColumView extends LinearLayout {
public CartColumView(Context context) {
super(context);
init(context, null, 0);
}
public CartColumView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init(context, attrs, 0);
}
public CartColumView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context, attrs, defStyleAttr);
}
private void init(Context context, AttributeSet attrs, int defStyleAttr) {
setOrientation(VERTICAL);//垂直方向
}
//生成不同个数的item
public void setRecommend(List<Goods> datas) {
removeAllViews();
for (Goods entity : datas) {
CartColumItemView cartColumItemView = new CartColumItemView(getContext());
addView(cartColumItemView);
cartColumItemView.setData(entity);
}
}
}
这种方法还是比较方便的
更多推荐
已为社区贡献1条内容
所有评论(0)