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的权重,设置中间列表内容跟底部导航栏的各自权重,便不会有覆盖的情况了,而且这种办法才是真正的无缝衔接。