知识积累

1、布局优化

ReleativeLayout 和 LinearLayout布局的onMeasure效率

viewstub 在listview应用

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		final ViewHolder viewHolder;
		if (convertView == null) {
			viewHolder = new ViewHolder();

			viewHolder.viewStub = (ViewStub) convertView.findViewById(R.id.vs_detail_operations);
			convertView.setTag(viewHolder);
		} else {
			viewHolder = (ViewHolder) convertView.getTag();
			viewHolder.viewStub.setVisibility(View.GONE);
		}

		viewHolder.rl_list_item.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				if (viewHolder.viewStub.getVisibility() == View.GONE) { //ViewStub初始状态时Gone
					if(viewHolder.viewStub instanceof ViewStub){//ViewStub只能被infalte一次,一旦构建后就变成view了,再次点击就不会执行inflate方法。
						viewHolder.viewStub = ((ViewStub)viewHolder.viewStub).inflate();
					}
					viewHolder.viewStub.setVisibility(View.VISIBLE);
				} else {
					viewHolder.viewStub.setVisibility(View.GONE);
				}
			}
		});
		return convertView;
	}

	
	class ViewHolder {
		RelativeLayout rl_list_item;// 点击展开或收起ViewStub
		View viewStub;// 点击后显示的更多的操作   --注意这里用View作为数据类型,而不用ViewStub的用意!
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值