项目中需要用到购物车,已经添加的商品需要在列表下显示,而且如果列表长度长过包裹它的布局的长度的时候要求底部要一直显示在底部
思路:
0: 在listview 下面添加一个现实当前的购物车里面的数量的布局1,然后复制这个布局将这个布局生成一个单独的布局2 ,将布局2作为listview的footerview 添加进去,
1: 当listview的可视列表中的商品数量没有商品总数多的时候,那么布局1显示,布局2不显示
2: 否则,那么布局1不显示,布局2显示
int numItemsVisible = lvBillingDetails.getLastVisiblePosition() -
lvBillingDetails.getFirstVisiblePosition()+1;
//Log.d("kodulf","lastvisibleposition="+lvBillingDetails.getLastVisiblePosition()+" FirstVisiblePosition="+lvBillingDetails.getFirstVisiblePosition());
//Log.d("kodulf","numItemsvisible="+numItemsVisible+" count="+lvBillingDetails.getCount());
//Log.d("kodulf","lvBillingDetails.getCount()> numItemsVisible = " +(lvBillingDetails.getCount() > numItemsVisible));
//如果listvieww的总数大于当前可视的数量,那么就是footerview 不可以看到,最底部的能看到,并且将footview 移除
//如果listvieww的总数不大于当前可视的数量,那么就是footerview 可以看到,最底部的不能看到,如果没有footerview ,那么添加
if (lvBillingDetails.getCount()> numItemsVisible)
{
// set your footer on the ListView
lvBillingDetails.removeFooterView(mAddedFootViewForlvBillingDetails);
mAddedFootViewForlvBillingDetails.setVisibility(View.GONE);
mLinearLayoutCartSumBelowListView.setVisibility(View.VISIBLE);
}
else
{
if(lvBillingDetails.getFooterViewsCount()<=0) {
lvBillingDetails.addFooterView(mAddedFootViewForlvBillingDetails);
}
mAddedFootViewForlvBillingDetails.setVisibility(View.VISIBLE);
mLinearLayoutCartSumBelowListView.setVisibility(View.GONE);
}