码迷,mamicode.com
首页 > 移动开发 > 详细

android一个页面上多个listview

时间:2015-08-05 17:41:13      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

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,就不会报错。

android一个页面上多个listview

标签:

原文地址:http://www.cnblogs.com/zhou-guobao/p/4705034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!