Android 如何为RecycleView适配器上添加的视图设置布局参数?
我正在为Android 如何为RecycleView适配器上添加的视图设置布局参数?,android,android-recyclerview,android-compound-view,Android,Android Recyclerview,Android Compound View,我正在为RecycleView的每个数据项在onCreateViewHolder上添加一个复合视图。 我需要根据数据项值向右或向左对齐 如果我在该方法中设置视图的布局参数,它们将被xml布局文件上的值覆盖 我能想出的唯一解决方案是有两个不同的布局文件,但不必要的重复文件 你知道如何通过代码来实现吗 更新:我还尝试了onBindViewHolder,代码如下 @Override public void onBindViewHolder(ViewHolder holder, int positi
RecycleView
的每个数据项在onCreateViewHolder
上添加一个复合视图。
我需要根据数据项值向右或向左对齐
如果我在该方法中设置视图的布局参数,它们将被xml布局文件上的值覆盖
我能想出的唯一解决方案是有两个不同的布局文件,但不必要的重复文件
你知道如何通过代码来实现吗
更新:我还尝试了onBindViewHolder,代码如下
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
View v = holder.itemView;
//to simplify i try to aling all to the rigth
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_END); //this settins has effect if defined on the layout file
v.setLayoutParams(params);
}
根据数据项的数据执行的任何操作都应该在onBindViewHolder中执行,而不是在onCreateViewHolder中执行。在创建时,您应该只设置正确的内容,而不考虑实际数据绑定或绑定位置。所有数据和位置特定的设置都在onBindViewHolder中完成。找到了。我假设
holder.itemView
是我添加的复合视图。我需要使用findViewById
来获取复合视图并为该视图设置参数。
因此,解决方案是从itemView中找到复合视图,如下所示:
View v = holder.itemView.findViewById(android.R.id.content);
然后将参数应用于问题中发布的视图