好吧,伙计们,我需要找到一种方法来改变RecyclerView的方向更改顶部的距离,因为它在水平和垂直方面有所不同,我得到了这个项目,onBindViewHolder,但我还需要设置参数对于RecyclerView,以下代码不起作用:
public ItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final View view = this.layoutInflater.inflate(R.layout.row_item, parent, false);
// Create layout params for the RecyclerView
RecyclerView.LayoutParams params
= new RecyclerView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.MATCH_PARENT);
// Set them margins
params.setMargins(0, spanCount * 500, 0, spanCount * 10);
// Get reference, this doesn't work
RecyclerView rv = (RecyclerView) parent.getChildAt(0); // Doesn't work
rv.setLayoutParams(params); // <- Throws NPE
return new ItemViewHolder(view);
}
我也尝试将RecyclerView转换为父级和视图,但也没有工作。
答案 0 :(得分:1)
只需将RecyclerView的引用传递给Adapter的构造函数。
答案 1 :(得分:1)
如果要更新RecyclerView的LayoutParameters,它不应该在适配器中。片段/活动必须处理方向更改并在需要时更新LayoutParam。
答案 2 :(得分:0)
如果您想在更改屏幕方向时更改RecyclerView的布局,为什么不在onConfigurationChanged更改它?