我正在开发我的应用程序,它要求电影海报的比例为 1:2。我找到了一种方法来做到这一点是运行 movieAdapterViewHolder.posterview.requestLayout(); ViewTreeObserver viewTreeObserver = movieAdapterViewHolder.cardview.getViewTreeObserver(); if (viewTreeObserver.isAlive()) { viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) @Override public void onGlobalLayout() { movieAdapterViewHolder.cardview.getViewTreeObserver().removeOnGlobalLayoutListener(this); movieAdapterViewHolder.posterview.getLayoutParams().height = Double.valueOf(movieAdapterViewHolder.posterview.getWidth() * 1.5).intValue(); } }); }但是,这不会在旋转时立即调用。它只会从onBindViewHolder. 有没有其他方法可以将 RecyclerView 中 CardView 的高度设置为其宽度的 2 倍,或者我如何以某种方式调用 onBindViewHolder?
1 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
您可以通过调用通知您的适配器您所做的更改yourAdapter.notifyDataSetChanged()
。它调用 onBindViewHolder 并使用最新更改更改您的项目视图。
添加回答
举报
0/150
提交
取消