Android recycleview 動態(tài)設置 itemview 寬高相等(正方形)

我原本將itemview 的最外層布局自定義為寬高相等的控件,但是發(fā)現(xiàn)最后呈現(xiàn)時總是在每一行的第一個itemview 內(nèi)容呈現(xiàn)上有問題,具體表現(xiàn)為底部有空隙,后改為如下動態(tài)方式

@Override
   public void onBindViewHolder(final ViewHolder holder, final int position) { //override(horizontalSize, verticalSize)

       ViewGroup.LayoutParams parm = holder.itemView.getLayoutParams();
       parm.height =
               mGridLayoutManager.getWidth()/mGridLayoutManager.getSpanCount()
               - 2*holder.itemView.getPaddingLeft() - 2*((ViewGroup.MarginLayoutParams)parm).leftMargin;
    ...

注意mGridLayoutManager 需要你傳進來。

補充:
這么改之后我這邊是仍有問題,就是橫豎屏切換后,已經(jīng)顯示的item拿不到最新屏幕寬度,造成其高度不變,寬度隨屏幕變化。

解決:

  • 在屏幕切換事件中調(diào)用adapter的notifyDataSetChanged()
  • 改 mGridLayoutManager.getWidth() 為screen 的 width
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、適用場景 ListViewListview是一個很重要的組件,它以列表的形式根據(jù)數(shù)據(jù)的長自適應展示具體內(nèi)容,用...
    Geeks_Liu閱讀 10,970評論 1 28
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,119評論 1 92
  • 翻譯自“Auto Layout Guide”。 1 入門 1.1 理解自動布局 自動布局根據(jù)視圖層級結(jié)構(gòu)中視圖上的...
    lakerszhy閱讀 3,922評論 3 26
  • 園林春景耀人瞳, 花木亭臺布局工。 何奈匠心雕飾美, 不如山野數(shù)枝紅。
    嘯巍閱讀 436評論 2 9
  • 渺遠如東方地平線 從迤邐的雞鳴聲里 姍姍而來 你 帶淚的祈禱 從清晨布谷的歌聲 直到午夜夏蟲的淺唱 夏至未至 菊花...
    驚鴻掠影來閱讀 689評論 4 40

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