我有一个CardView内的RecyclerView. CardView的高度为500dp,但如果RecyclerView较小,我想缩短此高度.
所以我想知道当RecyclerView是第一次完成它的项目时,是否有任何监听器被调用,可以将RecyclerView的高度设置为CardView的高度(如果小于500dp).
所以我想知道当RecyclerView是第一次完成它的项目时,是否有任何监听器被调用,可以将RecyclerView的高度设置为CardView的高度(如果小于500dp).
解决方法
我还需要在我的回收者视图完成充满所有元素之后执行代码.我尝试在我的适配器中检查onBindViewHolder,如果位置是最后一个,然后通知观察者.但在这一点上,回收者的观点仍然没有完全填补.
由于RecyclerView实现了ViewGroup,this anwser非常有帮助.你只需要添加一个OnGlobalLayoutListener到recyclelerView:
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. } });