BadgeView繫結的view不能隱藏問題

2021-09-24 06:51:58 字數 707 閱讀 9294

最近專案中需要用到小紅點,於是在github上找了乙個點贊數最多的庫badgeview,但是在使用過程中遇到了一些小問題了,首先它的使用方法很簡單,直接通過**設定

這樣就可以在textview的右上角顯示了,但是現在有個需求要在紅點數量為0時隱藏textview和小紅點。通過

通過setbadgenumber方法可以看出紅點為0時,已經預設隱藏小紅點了,而且**中也提供了hide()方法去隱藏,這個時候我直接通過 tvtarget.setvisibility(view.gone);去隱藏textview,結果雖然textview不見了,但是他一直在那佔位,就跟invisible的效果一樣,但是我需要gone掉,於是我在想是不是bindtarget時做了什麼操作,點進去看

核心**就是我圈出來的這塊,很明顯它是通過先記錄targetview的index和layoutparams,然後把targetview從他的parent中remove掉,再建立乙個badgecontainer,把小紅點和targetview新增進去,再把前面儲存的index和layoutparams屬性賦給badgecontainer,這樣就達到了效果,所以原來的textview已經被移除了,佔位的是乙個新view,所以將原來的textview隱藏時還是有乙個佔位的空view,所以如果需要達到隱藏效果,只需要隱藏badgecontainer

先獲取小紅點的view,然後得到他的parent也就是badgecontainer,隱藏就可以達到效果了。

獲取listview某個item的view物件

首先說,listview有個getchildat int position 的方法,但是這個方法只計算可視的item,也就是說position只是從第乙個可以看到的item算起的,這樣就和實際獲取的position是不一樣的。直接說解決方法吧 html view plain copy listvie...

Flutter和Android中的View區別

在android中,view是螢幕上顯示的所有內容的基礎,按鈕 工具欄 輸入框等一切都是view。在flutter中,view相當於是widget。與view相比,widget有一些不同之處。首先,widget僅支援一幀,並且在每一幀上,flutter的框架都會建立乙個widget例項樹 譯者語 相...

vue 單相繫結 Vue的單向繫結和雙向繫結

1 單向繫結 單向資料繫結的實現思路 所有資料只有乙份 一旦資料變化,就去更新頁面 只有data dom,沒有dom data 若使用者在頁面上做了更新,就手動收集 雙向繫結是自動收集 合併到原有的資料中。單項繫結 如下 html 2 雙向繫結 資料的雙向繫結是vue實現的一大功能。使用v mode...