所需要的實現(xiàn)的效果如如

image.png
這里我們在給RecyclerView LayoutManager時,給GridLayoutManager
mGridLayoutManager = new GridLayoutManager(this,8);
其中8是列數(shù)
在Adapter的ViewHolder中如下實現(xiàn)即可實現(xiàn)寬高相等
FindWordHolder findWordHolder = new FindWordHolder(LayoutInflater.from(FindWordNormaPlayActivity.this).inflate(R.layout.item_find_word_text, viewGroup, false));
ViewGroup.LayoutParams params = findWordHolder.itemView.getLayoutParams();
ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) rvContent.getLayoutParams();
//動態(tài)計算,設置item的寬高一致,總寬度-左右margin-左右padding /總列數(shù)-item左右margin-item左右padding
params.height =
(mGridLayoutManager.getWidth() - layoutParams.leftMargin
- layoutParams.rightMargin - rvContent.getPaddingStart() - rvContent.getPaddingEnd()) / mGridLayoutManager.getSpanCount()
- 2 * findWordHolder.itemView.getPaddingLeft() - 2 * ((ViewGroup.MarginLayoutParams) params).leftMargin;
return findWordHolder;