recycleview的用法和listview差不多
差距在于适配器中的方法发生改变 recycleview吧getview()变成了 onCreateViewHolder(ViewGroup parent, int viewType)和
onBindViewHolder(final HomeViewHolder holder, final int position)
效果就和优化过的getview差不多
其中的有个item布局的问题 我想大多第一接触recycleview的人都会遇到
那就是 你会发现你的item怎么都不会达到预期的布局 而且不管你怎么设置item也没有用
其实这是因为recycleview不提供item的布局问题
所以这里我们需要自己弄
@Override
public HomeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//这里很关键必须用LayoutInflater.from(parent.getContext()
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.newdynamic_item, parent, false);
return new HomeViewHolder(view);
}
@Override
public void onBindViewHolder(final HomeViewHolder holder, final int position) {
ViewGroup.LayoutParams layoutParams = holder.itemView.getLayoutParams();
layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
holder.itemView.setLayoutParams(layoutParams);
}
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.newdynamic_item, parent, false);
很关键
不然ViewGroup.LayoutParams layoutParams = holder.itemView.getLayoutParams();
获得的就是空值
接下来
layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
layoutParams.weight = ViewGroup.LayoutParams.WRAP_CONTENT;
holder.itemView.setLayoutParams(layoutParams);
来控制布局