首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ListView大小更改后获取layout.height

,可以通过以下步骤来实现:

  1. 首先,需要获取到ListView的实例对象。可以通过在代码中找到ListView的引用或者使用findViewById()方法来获取。
  2. 一旦获取到ListView的实例对象,可以使用getLayoutParams()方法来获取ListView的布局参数。
  3. 布局参数是一个ViewGroup.LayoutParams对象,可以通过该对象的height属性来获取ListView的高度。
  4. 如果ListView的高度是固定的,可以直接使用布局参数的height属性获取。如果ListView的高度是包裹内容的,可以使用measure()方法来测量ListView的高度。
  5. 如果需要在ListView大小更改后获取高度,可以在ListView的onSizeChanged()方法中进行操作。该方法会在ListView的大小发生变化时被调用。

以下是一个示例代码:

代码语言:java
复制
ListView listView = findViewById(R.id.listView);

// 获取ListView的布局参数
ViewGroup.LayoutParams layoutParams = listView.getLayoutParams();

// 获取ListView的高度
int listViewHeight = layoutParams.height;

// 如果ListView的高度是包裹内容的,可以使用measure()方法来测量高度
if (listViewHeight == ViewGroup.LayoutParams.WRAP_CONTENT) {
    int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.EXACTLY);
    int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
    listView.measure(widthMeasureSpec, heightMeasureSpec);
    listViewHeight = listView.getMeasuredHeight();
}

// 在ListView大小更改后获取高度
listView.setOnSizeChangedListener(new OnSizeChangedListener() {
    @Override
    public void onSizeChanged(int w, int h, int oldw, int oldh) {
        // 获取ListView的新高度
        int newListViewHeight = listView.getLayoutParams().height;
        
        // 如果ListView的高度是包裹内容的,可以使用measure()方法来测量新高度
        if (newListViewHeight == ViewGroup.LayoutParams.WRAP_CONTENT) {
            int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.EXACTLY);
            int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
            listView.measure(widthMeasureSpec, heightMeasureSpec);
            newListViewHeight = listView.getMeasuredHeight();
        }
        
        // 在这里进行相应的操作,比如更新UI或者执行其他逻辑
    }
});

请注意,以上示例代码中的ListView是Android平台的示例,如果在其他平台或框架中使用ListView,可能会有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

keras 中获取张量 tensor 的维度大小实例

进行keras 网络计算时,有时候需要获取输入张量的维度来定义自己的层。但是由于keras是一个封闭的接口。因此调用由于是张量不能直接用numpy 里的A.shape()。这样的形式来获取。...我们想要的是tensor各个维度的大小。因此可以直接调用 int_shape(x) 函数。这个函数才是我们想要的。...np.array([[1, 2], [3, 4]]) kvar = K.variable(value=val) K.int_shape(kvar) (2, 2) 最后这样我们就可以直接调用里面的大小...x_shape)# AttributeError: 'numpy.ndarray' object has no attribute 'get_shape' 或者a.shape.as_list() 以上这篇keras...中获取张量 tensor 的维度大小实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

3K20
  • WPF 列表右键菜单比较符合 MVVM 的命令绑定方法

    群里小伙伴问我如何在 ListView 的右击的时候知道右击的是哪一项,他想要获取对应的行信息。...> 而此时如果我想要先获取所点击的 GridView 是哪一行,然后弹出右键菜单,设置对应的属性,此时的代码逻辑相对来说很复杂 WPF 如此优秀的框架里面怎么也需要提供更清真的方法 先忽略绑定的数据是什么...> 通过 ItemContainerStyle 设置一个样式,样式里面更改 ContextMenu 的内容就可以了,代码量十分少 还有一个问题是如何让右键菜单知道当前点的哪一项?...每一个 GridView 的 Row 项里面都会使用 ListView 的 ItemSource 的数据的某一项,而咱按照 MVVM 的思想,应该变更的是数据而不是界面本身 而 DataContext...ListViewItem 的界面的,如果这个界面更改和数据无关,那么可以通过修改 Style 的方法修改界面,而不是通过后台代码修改属性的方式 上面的代码我实际的测试项目里面是存在一定的更改,本文的代码只是给大家演示

    3K20

    鸿蒙小游戏-数字华容道 自定义组件的踩坑记录

    结果三天的时间都卡在了自定义组件上,使用了各种方式方法去实现功能,但是还是没有达到预期的效果,暂时先做个小总结,其实坑有的时候真的很深… 一、效果演示 小应用其实也挺简单,以前也见到过,叫做数字华容道,当你把所在的数字以顺序放置完成游戏结束...这里先说一个这个棋子,棋子有两个东西需要被记住,一个是棋子的坐标就是九宫格里面的位置,另一个就是棋子的名称;所以选择使用自定义组件的方式将坐标和名称进行一个绑定。...引入组件出问题了,布局报错(原来Android引入自定义组件的时候,单个组件也是可以直接引入的);报错原因是,我最外层没有放置布局导致不能直接识别单个组件,但是如果我加上一个布局的话,文件不会报错,...但是我的棋盘上不能拿到这个棋子的组件; 为此我只能将棋子的自定义组件写成了布局引入方式。...棋盘的布局稍微复杂一点,因为需要根据棋盘的大小计算每一个棋子的大小,还需要对棋子进行绑定,尤其是需要对最后一个棋子做空白处理。 然后点击棋子进行棋子的平移,平移与其位置进行互换。

    37220

    使用ListView控件展示数据

    小图标图像的imagelist控件 imagelist控件用来存放使用的图像对象集合 图像列表imagelist的属性 属性名称   说明 images   存储的所有图像 imageSize  图像的大小...colordepth  颜色数 transparentColor 被视为透明的颜色 先设置colordepth imagesize属性值再添加图片,反之不能更改这两个属性值 listView items...中的项 liview动态添加数据 创建listviewitem对象 添加子项 添加到listview的item集合中 实现查询功能listview属性设置 view:Details,设置视图为详细信息...fullrowselect:true,整行选中 Gridlines:true,显示网络线 multisekect:false,不允许多选 读取数据库中数据添加到liview中 Add方法 AddRange()方法 获取...listview数据方法 this.lvresult.selectedItems[0].Text this.lvresult.selectedItems[0].subitems[0].Text

    1.5K70

    Android View之requestLayout排坑

    一个功能引发的思考 首先从一个真实项目中的例子说起,假设我们需要做一个定时器之类的功能,就是每隔一秒会刷新TextView(显示时间用)的内容,同时也会更改另一个View的background...然而,有一天因为新需求在这个布局里加了一个ListView,运行,奇怪的现象出现了:ListView右侧的scrollbar一直闪烁,而自己并没有滚动ListView。...我们知道,scrollbar在用户没有操作时也出现的话,只能说明此时ListView触发了布局计算,而一直闪烁,则说明一直触发布局计算。。。        ...上面只介绍了setText,setBackgroundDrawable两个方法的实现,其实View其他设置方法都大同小异,代码的实现者考虑到性能问题,更改View的内容时,如果发现其大小等属性没变化,...重新运行,scrollbar一直闪烁的问题果然就解决了。 四.

    6.3K51

    2.ui

    “先各自分配各自控件的长度,然后将剩余的长度按照权重的比例layout_weight的大小进行设置。  ...invisible表示控件不可见,但是它仍然占据着原来的位置和大小, 可以理解成控件变成透明状态了。 gone则表示控件不仅不可见,而且不再占用任何屏幕空间。...View对象,作为ListView的条目 //position:本次getView方法调用所返回的View对象,listView中是处于第几个条目,那么position的值就是多少 @Override...注册了一个监听器,当用户点击了 ListView中的任何一个子项时就会回调 onItemClick()方法, 在这个方法中可以通过 position参数判断出用户点击的是哪一个子项,然后获取到相应的水果...然代码中动态地更改进度条的进度。

    1.6K90

    【Android 逆向】修改 Android 系统文件 ( Android 逆向中需要经常修改的文件和目录 | root 的设备中获取 目录的 rw 权限注意事项 )

    文章目录 一、Android 逆向中需要经常修改的文件和目录 二、 root 的设备中获取 / 目录的 rw 权限注意事项 1、不要随意执行 wipe 命令 2、不要随意执行 rm 命令 一、Android..., 可以向其中添加 so 动态库 , 或者使用一个修改过的 so 动态库替换原有的 so 文件 ; 使用 新的 so 文件 A 替换原有的 so 文件 B , 将原有的 so 文件重命名为 C , ...A 动态库中 调用 C 动态库的函数 , 这样就相当于调用时加了一层拦截 , 可以在此处获取各种参数 ; 配置文件目录 : Android 的配置文件一般都在 /system/etc/ 目录中 ; 二...、 root 的设备中获取 / 目录的 rw 权限注意事项 ---- 1、不要随意执行 wipe 命令 wipe 命令不要轻易执行 ; 执行 wipe system 命令 , 会将当前 Android...系统的所有设置都删除 , 还原到出厂设置 ; 执行 wipe data 命令 , 会清除当前所有的用户安装的应用及文件都删除 ; 执行 wipe all 命令 , 是上述两个命令之和 , 类似于根目录中执行

    1.7K10

    Flutter 刷新页面:通过下拉刷新提升用户体验

    丰富的挂件中,Flutter 提供了一个很好的方式实现下拉来刷新应用。这个手势,对很多用户来说很熟悉,就是下拉页面来触发更新的动作,获取新的数据并更新屏幕展示。...它需要一个 child 的挂件,这个挂件通常是可滚动的挂件,和一个 onRefresh 回调函数来定义当用户触发刷新发生什么事情。...Flutter 响应式框架能够在数据更改时,更新应用程序的用户界面。 下拉刷新管理数据 为了有效联合下拉刷新来管理状态,我们可以众多 Flutter 生态中选择其中一种。...它可以从父挂件中获取数据,管理状态并在页面之间导航。当实现下拉刷新,我们经常需要 BuildContext 来触发状态的更改或者刷新导航到不同的屏幕。...为了充分利用热加载,请使用模块化构建代码,不同函数或者类中分离获取刷新数据逻辑和更新 UI。这会让我们独立更改和测试小块代码,降低引入错误的风险并加快开发过程。

    26410

    基于 HTML5 Canvas 的工控机柜 U 位动态管理

    这里先将整个右边的部分进行布局,下面代码中的变量 listBorder 为上图的左半部分,变量 borderPane 为上图的右半部分,至于鹰眼组件部分,是添加到 borderPane 的上层: listView...guide/guide/plugin/dialog/ht-dialog-guide.html),我们设置此对话框中的内容为一个 form 表单进行显示,同时还设计了两个按钮,“OK”按钮作为执行创建/更改机柜的属性...(e);// 传入逻辑坐标点或者交互event事件参数,返回当前点下的数据元素 listView.sm().ss(data);// 拖拽的过程中设置列表组件中的被拖拽的元素被选中...dnd.offsetHeight * 0.5 + 'px'; self.showDragHelper(e); } } else {// 拖拽“放开”鼠标的操作...= self.listView, gv = self.gv, dm = gv.dm(),// 获取数据容器 target = gv.sm().ld(),

    2.4K40
    领券