搜尋

首頁  >  問答  >  主體

android - RecyclerView根据Position设置Item的子视图是否显示?

我在Adapter里面判断Position然后设置控件是否显示会显示错乱,请问有什么办法可以根据Position来设置控件是否显示。比如:我想在头和尾都显示一张图片,其他则不显示。

怪我咯怪我咯2772 天前764

全部回覆(3)我來回復

  • PHPz

    PHPz2017-04-17 17:37:20

    XXX.setVisibility(position == XXX ? View.VISIBLE : View.GONE);
    要帶else的執行,不然會錯亂,因為ListView和RecyclerView 都有復用機制,就是你用過的item 滑出螢幕一定距離後會重複使用來顯示新的數據,如果有某項不重新設定數據,會導致item 的數據是上一次的數據,造成數據錯亂。就是你設定了隱藏,就要設定顯示

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:37:20

    沒大看懂你的問題。 。 。
    我覺得你可以重寫getItemViewType()方法和getItemCount()方法,在onBindViewHolder中控制。當position是0和最後時顯示圖片,其他情況顯示正確內容
    這需要寫兩個viewHolder,一個是正常的展示數據的,另一個裡面只有一個ImageView

    回覆
    0
  • PHPz

    PHPz2017-04-17 17:37:20

    需要先在OnCreatViewHolder時候設定viewType 並載入佈局
    然後再根據position判斷type 設定 資料載入 和 展示。

    回覆
    0
  • 取消回覆