listview中每个item的高度都是由里面的内容自适应的
这就会出现高度不一致的情况
又不能设置成固定高度(前面这些都是需求。。)
有没方法可以让高度低的调节到和其中的最大高度一致呢
这就会出现高度不一致的情况
又不能设置成固定高度(前面这些都是需求。。)
有没方法可以让高度低的调节到和其中的最大高度一致呢
解决方案 »
- android如何获取一个SD卡指定文件夹的图片Uri uri问题
- android 横竖屏切换的时候AlertDialog不会重新创建
- 关于按钮中添加ChartFactory.getLineChartIntent
- 调用gps信息在android2.2下正常,但是2.3以上gps设备显示出来,就是无法读出经纬度
- 请问android怎么监听软键盘的event?
- android2.3问题
- 为什么ContentProvider无法初始化啊
- Android 4.3有隐藏功能”App Ops”应用权限管理
- 百度地图如何实现手动定位(是指手指点哪里就获取哪里位置信息)
- 国内发布应用一般发布在那个应用商店
- Android程序实现 将成绩查询系统网站登录后的 内容解析下来显示在手机上。。请高人指点如何实现?
- 怎么把android系统或者android系统的kernel内核烧到真机里啊
我修改了listview的onMeasure方法
我已经能够得到这个最大值
但是不知道在哪里能够进行对item高度的重新设置
因为一开始不知道最大高度是多少 所以必须先让他生成一遍吧
生成之后才能使用getchildAt(positon)来取得对应的item
以此取得最大高度
最后再把这个高度设置进每一个item
但是不知道应该在什么时候设置进去,现在虽然代码写了 但是没有效果
我的代码使用java code写的,没用xml
{
public static void setheight(ListView listView)
{
ListAdapter listAdapter=listView.getAdapter();
if(listAdapter==null){return;}
int maxHeight=0;
int itemNum=listAdapter.getCount();
for(int i=0;i<itemNum;i++)
{
View listItem=listAdapter.getView(i,null,listView);
listItem.measure(0,0);
int thisHeight=listItem.getMeasuredHeight();//计算子项View的宽高
maxHeight=(maxHeight>thisHeight)?(maxHeight):(thisHeight);
}
for(int j=0;j<itemNum;j++)
{
View listItem=listAdapter.getView(i,null,listView);
ViewGroup.LayoutParams params=listItem.getLayoutParams();
params.height=maxHeight;
listItem.setLayoutParams(params);
}
}
}试一试这个
llmain.setOrientation(LinearLayout.VERTICAL);
lstView = new MyListView[devs.length];
lstAdapter = new ListAdapter[devs.length]; for(int i = 0; i < devs.length; i++) {
TextView txtHmgName = new TextView(context);
txtHmgName.setText(devs[i].name);
lstView[i] = new MyListView(context);
lstAdapter[i] = new ListAdapter(context, devs[i]);
lstView[i].setAdapter(lstAdapter[i]);
lstView[i].setScrollContainer(false);
lstView[i].setScrollingCacheEnabled(false);
llmain.addView(txtHmgName);
llmain.addView(lstView[i]);
ListViewSetHeight.setheight(lstView[i]);
}
我已经将函数调用放在最后了 还是提醒NULLPOINTEREXCEPTION 应该在哪里调用呢
能够取得最大高度
但是设置统一高度没有效果
如果case很多,而且后续可能加进去的话 就比较麻烦
我现在是在onmearue里计算出最大高度
然后再getview里面把最大高度设置给每个item
这样做会浪费点资源,相当于把list画了2遍
但是适应性强
把这个方法放在循环后面,参数用llmain