Android Recyclerview隱藏item的所在區域顯示大空白問題的解決方案

最近搞了下Recyclerview,作了增長、刪除item的功能。item上方有卡籤app

 插個圖片看下效果,點擊底下的添加上去,同時,底下的item消失,這個用notifyItemInserted和notifyItemMoved就能夠解決,但同時如今考勤底下只剩下一個補籤功能,ide

這個時候我點擊補籤,但願考勤標籤也要消失掉,要不難看的要死要死的,因此我視圖使用itemView.setVisibilty(View.GONE)解決該問題,可是考勤標籤那部分是隱藏了,可是是INVISIBLE的效果,原位置還在,這我就忍不了了,明明是GONE,爲毛是INVISIBLE的效果,後來在網上查了查資料,偶然發現一片博客,佈局

附上博客地址:http://blog.csdn.net/u011060103/article/details/52780844,spa

解決了此問題,故在此記錄下來,避免之後發生這樣的問題.net

注意:itemIVew不能有margin,若是有的話替換成padding,不然不能隱藏空白區域code

下邊viewholder中setVisibility方法是重點哦。

再貼下代碼:blog

/** * 列表類型名稱分割線viewholder */
    class MyAppTypeDivider extends RecyclerView.ViewHolder { TextView itemDividerTypeTv; RelativeLayout itemRootLayout; // 這個方法是重點!!!!!!!!!!!!!!!!!!!!!!!!!!
        public void setVisibility(boolean isVisible) { RecyclerView.LayoutParams param = (RecyclerView.LayoutParams) itemView.getLayoutParams(); if (isVisible) { param.height = RelativeLayout.LayoutParams.WRAP_CONTENT;// 這裏注意使用本身佈局的根佈局類型
                param.width = RelativeLayout.LayoutParams.MATCH_PARENT;// 這裏注意使用本身佈局的根佈局類型
 itemView.setVisibility(View.VISIBLE); } else { itemView.setVisibility(View.GONE); param.height = 0; param.width = 0; } itemView.setLayoutParams(param); } public MyAppTypeDivider(View itemView) { super(itemView);// itemView不能有margin屬性,若是有替換成padding
            itemRootLayout = (RelativeLayout) itemView.findViewById(R.id.item_myapplication_all_divider_root_layout); itemDividerTypeTv = (TextView) itemView.findViewById(R.id.item_myapplication_divider_type_tv); } }
相關文章
相關標籤/搜索