动态设置ScrollView里面的ListView的高度

思路:循环取得listview中的Item的高度,把所有Item高度累加,就是Listview的高度。

 1     public static void setListViewHeightBasedOnChildren(ListView listView) {
 2         if (listView == null)
 3             return;
 4         ListAdapter listAdapter = listView.getAdapter();
 5         if (listAdapter == null) {
 6             return;
 7         }
 8         int totalHeight = 0;
 9         for (int i = 0; i < listAdapter.getCount(); i++) {
10             View listItem = listAdapter.getView(i, null, listView);
11             listItem.measure(0, 0);
12             totalHeight += listItem.getMeasuredHeight();
13         }
14         ViewGroup.LayoutParams params = listView.getLayoutParams();
15         params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
16         listView.setLayoutParams(params);
17     }
时间: 2024-10-06 17:35:37

动态设置ScrollView里面的ListView的高度的相关文章

Android之ScrollView里嵌套ListView

ScrollView套ListView会存以下两个问题 1.里面的listView高度无法算出来,通常只能显示listview的其中一行 2.listview不能滚动 这里我用的是可展开的(ExpandableListView 解决问题一,如果ExpandableListView是的子项是用写死的布局文件来加载的,只要在设置ListView的Adapter后调用此静态方法即可让ListView正确的显示在其父ListView的ListItem中.但是要注意的是,子ListView的每个Item必

android之ScrollView里嵌套ListView(转)

hi,大家好,研究完ScrollView嵌套ScrollView之后,本人突然又想研究ScrollView里嵌套ListView了.如果还不知道ScrollView嵌套ScrollView是怎么实现的可以参考http://www.eoeandroid.com/thread-240709-1-1.html在上篇文章当中其实我没有怎么把原理讲清楚,只是上了原代码,而其实ScrollView里套ScrollView和ScrollView里套ListView是同一个道理的. 按常理,ScrollView

ScrollView里嵌套ListView的冲突问题

这是最近遇到的一个问题,要在详情页面添加别人评论的,详情页面本身有很多信息,不能再一屏展示完所以用了ScrollView,由于评论有很多条所以这时候自然就用到ListView来展示,但是遇到了问题那就是ScrollView里的ListView只能显示一个条目.试过好几个方法来解决这个问题,最终找到了最简单的.自定义实现ListView. public class ListviewNoScroll extends ListView { public ListviewNoScroll(Context

在代码中动态设置android里View的边距

有时候需要动态设置某个View的位置,如果在布局文件中写则其布局已定. 这时可以通过在代码中根据不同的需要增加判断后,在设定边距等. 如下. 需要说下,setMargins() 方法.其括号中的四个参数依次对应的方位为-- 左,上,右,下. 左即指View的左边距. 代码来自mtk android 源码. 在代码中动态设置android里View的边距

Android AlertDialog 动态更新里面的ListView数据

1:和ListView的数据跟新是基本一样的. 2:Activity代码示例 public class MainActivity extends AppCompatActivity { AlertDialog alertDialog; View view; List<String> data = new ArrayList<>(); ListView listView; ArrayAdapter<String> adapter; Handler handler=new

listview 和 scrollview 一起使用 listview 测量高度不准确

自定义 listview 重写 onmeasure方法 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,                  MeasureSpec.AT_MOST);          super.onMeasure(widthMeas

Fragment里面的ListView的item点击没反应

最近做一个消息列表,发现fragment的listview加载消息出来后,每条消息都点击不了,经过询问和查下已解决 开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点.原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是B

vue开发 - 根据vue-router的meta动态设置html里标签的内容

路由文件 :router/index.js import Vue from 'vue'import Router from 'vue-router'import index '@/view/index'import user from '@/view/user'Vue.use(Router)export default new Router({ routes: [ { path: '/index', name: 'index', component: index, meta:{ title:'首

ScrollView中嵌套ListView时,listview高度显示的问题

方法一:直接更改listview的控件高度,动态获取(根据条目和每个条目的高度获取) 前几天因为项目的需要,要在一个ListView中放入另一个ListView,也即在一个ListView的每个ListItem中放入另外一个ListView.但刚开始的时候,会发现放入的小ListView会显示不完全,它的高度始终有问题.上网查了下,发现别人也有遇到这样的问题,而大多数人都不推荐这样的设计,因为默认情况下Android是禁止在ScrollView中放入另外的ScrollView的,它的高度是无法计