【发布时间】:2016-03-09 06:53:47
【问题描述】:
public void onBindViewHolder(final ViewHolder viewHolder, final int position) {
viewHolder.button.setText("button" + +position);
if(position == 0){
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams);
viewHolder.button.getLayoutParams();
params.height = 200;
params.width = 200;
viewHolder.itemView.setLayoutParams(params);
}else{
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams);
viewHolder.button.getLayoutParams();
params.height = RecyclerView.LayoutParams.WRAP_CONTENT;
params.width = RecyclerView.LayoutParams.WRAP_CONTENT;
viewHolder.itemView.setLayoutParams(params);
}
}
在GridView 的适配器中使用此代码我试图为GridView 的第一项提供自定义大小,但它会更改行中所有项目的大小,但其他列的项目保持正常。
那么如何在GridView 中只更改一项?
【问题讨论】:
-
您的 if 需要一个
else部分。请记住,同一个视图会被多个项目回收 -
我的
if中也有一个else部分,我缩短了代码以使其清楚。else也存在同样的问题 -
在你的else块中,你设置了高度和宽度吗?
-
是的,我设置为原始高度和宽度,即 RecyclerView.LayoutParams.WRAP_CONTENT
-
请编辑您的问题以添加该信息
标签: android gridview android-gridview android-inflate android-layoutparams