Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android購物車遇到的問題

android購物車遇到的問題

編輯:關於Android編程

最近 做購物車的時候 ,遇到幾個問題,現在 總結如下:

1:不讓listview復用組件(購物車,或者有特殊操作的時候):

自己保存所有的view對象

 

 public View getView(final int position, View convertView, ViewGroup parent) {

        final DaydayCouponBean bean = list.get(position);
        View view =  DataCenter.shoppingCarMap.get(new Integer(position));
        if (view == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.daydaycoupon_shoppingcar_item, null);
            DataCenter.shoppingCarMap.put(position, convertView);
        } else {
            convertView = DataCenter.shoppingCarMap.get(new Integer(position));
        }

        return view;
    }

對應的Map

 

 

 public static TreeMap shoppingCarMap = new TreeMap();

 

2:scrowvdiw嵌套lsitview 高度無法計算 每次更新數據集Arraylist之後,手動計算lsitview的高度,所有的item就都會初始化

或者 購物車 要 一次性 初始化所有的 item(如 獲取所有的商品總額,不是當前頁嗎可見區域的總額)

 

    adapter.notifyDataSetChanged();
     float density = getResources().getDisplayMetrics().density; // 屏幕密度(0.75 / 1.0 / 1.5)
     UIUitls.setListViewHeightBasedOnChildren(listView, (int) (density * 20));

3:listview嵌套問題詳細見:

 

注意,在使用listview嵌套listview發現,計算的高度還是比較詭異,解決辦法??要使用自定義的listview

/**
 * Created by david on 2014/6/30.
 * 解決lsitview 嵌套 listveiw 高度計算錯誤,使用的lsitview
 */
public class MyListview extends ListView {

    public MyListview(Context context) {
        super(context);
    }

    public MyListview(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyListview(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}
每次重新刷新lsitrview的時候

 

 

  UIUitls.setListViewHeightBasedOnChildren(listView, DensityUtil.dip2px(120),beans.size() );
  adapter.notifyDataSetChanged();



 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved