java list布局_java – 使用2种不同的布局重用Android Listvi...

我已经了解到,为了最大限度地提高Android列表视图的效率,您应该只需要尽可能多的充满“行”视图,以适应屏幕.一旦视图移出屏幕,您应该在getView方法中重用它,检查convertView是否为null.

但是,当您需要2个不同的列表布局时,如何实现这个想法?让我们说它的订单列表和1个布局是针对已完成的订单而另一个布局是针对流程订单.

这是我的代码使用的想法的示例教程.就我而言,我将有两行布局:R.layout.listview_item_product_complete和R.layout.listview_item_product_inprocess

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder = null;

if (convertView == null) {

holder = new ViewHolder();

if(getItemViewType(position) == COMPLETE_TYPE_INDEX) {

convertView = mInflator.inflate(R.layout.listview_item_product_complete, null);

holder.mNameTextView = (TextView) convertView.findViewById(R.list.text_complete);

holder.mImgImageView = (ImageView) convertView.findViewById(R.list.img_complete);

}

else { // must be INPROCESS_TYPE_INDEX

convertView = mInflator.inflate(R.layout.listview_item_product_inprocess, null);

holder.mNameTextView = (TextView) convertView.findViewById(R.list.text_inprocess);

holder.mImgImageView = (ImageView) convertView.findViewById(R.list.img_inprocess);

}

convertView.setTag(holder);

} else {

holder = (ViewHolder) convertView.getTag();

}

thisOrder = (Order) myOrders.getOrderList().get(position);

// If using different views for each type, use an if statement to test for type, like above

holder.mNameTextView.setText(thisOrder.getNameValue());

holder.mImgImageView.setImageResource(thisOrder.getIconValue());

return convertView;

}

public static class ViewHolder {

public TextView mNameTextView;

public ImageView mImgImageView;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值