利用RecyclerView實現(xiàn)九宮格,item的寬高一致(即為正方形)

所需要的實現(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;

鄭重聲明,此文章僅作為自己學習筆記使用,如有侵權,請私信刪除

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容