我有一个位于 CardView
内的 RecyclerView
。 CardView
的高度为 500dp,但如果 RecyclerView
较小,我想缩短此高度。
所以我想知道当 RecyclerView
第一次完成放置它的项目时是否有任何监听器被调用,从而可以将 RecyclerView
的高度设置为CardView
的高度(如果小于 500dp)。
最佳答案
我还需要在我的回收器 View 完成所有元素的膨胀后执行代码。我尝试在我的适配器中 checkin onBindViewHolder
,如果位置是最后一个,然后通知观察者。但此时,回收站 View 仍未完全填充。
作为 RecyclerView实现 ViewGroup
, this anwser很有帮助。您只需添加一个 OnGlobalLayoutListener到recyclerView:
View recyclerView = findViewById(R.id.myView);
recyclerView
.getViewTreeObserver()
.addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// At this point the layout is complete and the
// dimensions of recyclerView and any child views
// are known.
recyclerView
.getViewTreeObserver()
.removeOnGlobalLayoutListener(this);
}
});
关于android - 如何知道 RecyclerView 何时完成放置项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30397460/