天天看點

android解決fragment嵌套ListView顯示不全問題

android解決fragment嵌套ListView顯示不全問題

最近在做安卓的類似淘寶的網上商城APP,用的安卓自帶的底部導航欄,app制作中想必各位同行都挺熟悉ListView。

小白可以看看這篇大神的文章

android應用開發全程實錄-你有多熟悉listview?

感覺還是很不錯的,裡面代碼基本拿上就可以移植。

好了

進入正題

關于标題的問題,其實很簡單,有個笨辦法就是看你的底部導航欄有多高,然後在fragment布局檔案裡嵌套的ListView中設定*android:layout_marginBottom=“xdp”*即可。dp屬性也可以是其他的px等等,看情況使用。

我知道這個方法很粗糙,其實我們可以想辦法擷取導航欄的具體高度,但目前我沒有找到辦法(其實是懶),希望有道友能在評論指出,大家一起進步。

代碼如下(僅供參考):

<ListView
    android:id="@+id/goods_list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="58dp"/>
           

下面是我的一些彎路,寫出來隻是為了加深印象,各位DARK不必往下看。

一開始我是修改ListView的layout_height屬性,手動讓它不占全屏,留一點空間給底部導航欄。現在想想還是很愚蠢的,這樣設定,雖然在實時視圖上的效果看起來跟正确做法是一樣的,可是當你運作你的軟體,你會發現,它隻是縮短了list的高度,而裡面需要顯示的内容同樣也被“縮短”了,或者說被“截”掉了。說的很抽象,估計沒親手試過的人恐怕不知道我在BB什麼。

補充

其實更好地辦法就是在你的導航欄的layout頁面利用LinearLayout的權重,設定中間清單内容跟底部導航欄的各自權重,便不會有覆寫的情況了,而且這種辦法才是真正的無縫銜接。