[問題] 請問如何隱藏RecyclerView前三的按鈕

作者: sivle01 (好耶,好運還沒走!)   2018-05-09 09:50:49
前輩好,小弟遇到一個問題。
畫面大概是這樣
AAAAA 修改
BBBBB 修改
CCCCC 修改
DDDDD 刪除 修改
EEEEE 刪除 修改
想把RecyclerView前三個選項的特定按鈕除藏
在adapter裡這樣寫
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if (position <3) {
holder.btnRemove.setVisibility(View.GONE);
}
}
但發現超過一頁後會有問題
捲動時,position會重算,變成第二頁的前三也會隱藏了
請問有人可以提示我正確的做法嗎?
謝謝~~~ <(_ _)>
作者: LZN (秋)   2018-05-09 10:15:00
應該不是position的問題, viewholder是會重複使用使用前請先搖一搖..痾 請先reset(或覆蓋)view的狀態跟資訊
作者: now99 (陳在天)   2018-05-09 11:01:00
使用前用預設值覆蓋
作者: sivle01 (好耶,好運還沒走!)   2018-05-09 11:24:00
不好意思,補充一下是新增項目超過第二頁後,再捲動才會請問可以再多給我幾個關鍵字去google嗎?3q
作者: gcobc12632 (Ted)   2018-05-09 11:32:00
寫個else setVisibility(View.VISIBLE) 試試?
作者: evo1994 (Evo)   2018-05-09 12:17:00
應該是直接從你資料源移除才對吧!還有就是樓上說的方式不過要把layout長寬設為1google csdn listview 隱藏某項item
作者: t52101t (五子棋)   2018-05-09 13:02:00
寫else or 開頭先統一設為VISIBLE
作者: sana113821 (蜂蜜紅茶)   2018-05-09 14:28:00
先在最前面設定預設值 或是用if else 不能只用ifif 是GONE 那else 就要設定VISIBLE
作者: sivle01 (好耶,好運還沒走!)   2018-05-09 16:56:00
感謝大家,已解決開頭要先統一設為VISIBLE因為它會複用

Links booklink

Contact Us: admin [ a t ] ucptt.com