• android一个页面上多个listview


    android一个页面上多个listview,在滚动的时候,需要两个listview能够一起滚动,看起来是一个view。

    这个功能的具体实现,参考:  

    http://blog.csdn.net/xia296/article/details/8128674

    最主要的代码是:

    	/**
    	 * 设置listview高度,注意listview子项必须为LinearLayout才能调用该方法
    	 * @param listview listview
    	 * 
    	 */
    	public static void  setListViewHeight(ListView listview){  
            int totalHeight = 0;    
           ListAdapter adapter= listview.getAdapter();
           if(null != adapter){
            for (int i = 0; i <adapter.getCount(); i++) {    
            View listItem = adapter.getView(i, null, listview);
    	        if (null != listItem) {
    	        listItem.measure(0, 0);//注意listview子项必须为LinearLayout才能调用该方法
    	        totalHeight += listItem.getMeasuredHeight();
    	        }
            }    
                
            ViewGroup.LayoutParams params = listview.getLayoutParams();    
            params.height = totalHeight + (listview.getDividerHeight() * (listview.getCount() - 1));    
            listview.setLayoutParams(params);  
           }
        }   
    

    具体在代码中的使用这个方法:

        public void loadAdvanceGameView(){
            if (mAdvanceAdapter == null) {
                mAdvanceAdapter = new GameDetailAdapter(mContext, mAdvanceGameList);
                advanceListView.setAdapter(mAdvanceAdapter);
            }else {
                mAdvanceAdapter.notifyDataSetChanged();
            }
            setListViewHeight(advanceListView);
            LoadMyLocalView();
        }
        
        private void LoadMyLocalView() {
            mLocalGameList.clear();
            mLocalGameList.addAll(AppManager.get().getSelectedAppBeans());
            removeRepeatApp();
            if (mLocalAdapter == null) {
                mLocalAdapter = new AppBeanAdapter(mContext, mLocalGameList);
                localListView.setAdapter(mLocalAdapter);
            }else {
                mLocalAdapter.notifyDataSetChanged();
            }
            setListViewHeight(localListView);
        }
    

      

    我在使用的时候,其中listview里面的item的view是用RelativeLayout创建的。

    但是后面测试的时候,在部分机器上报错。

    具体的解决方法参考:

    分析java.lang.NullPointerException thrown in RelativeLayout measure()

    假如开始就是用LinearLayout,就不会报错。

  • 相关阅读:
    第12讲:数据库完整性
    第11讲:视图及其应用
    第10讲:利用SQL语言实现关系代数操作
    ArcEngine 坐标系转换
    [转]ArcGIS计算图斑的四邻坐标(XMin,XMax,YMin,YMax)
    oracle11g 修改字符集 修改为ZHS16GBK
    Oracle 全文索引相关命令
    SQL语句 递归
    流量操控之SSH隧道与端口转发
    VIM 常用操作
  • 原文地址:https://www.cnblogs.com/zhou-guobao/p/4705034.html
Copyright © 2020-2023  润新知