使用 rowHeight 的 ui-grid 行高:'auto'

Posted

技术标签:

【中文标题】使用 rowHeight 的 ui-grid 行高:\'auto\'【英文标题】:ui-grid row height using rowHeight : 'auto'使用 rowHeight 的 ui-grid 行高:'auto' 【发布时间】:2015-03-26 19:35:29 【问题描述】:

我从 ui-grid 得到了这种奇怪的行为,如果我将 rowHeight 设置为 auto,同一行中的每个单元格将具有不同的高度。每行中的一个单元格将包含多行数据,但显然 ui-grid 会阻塞。 (我为该行着色,以便您可以看到问题所在!)知道如何解决这个问题吗?我的意思是为每行中的所有单元格获得相同的高度。如何处理同一个网格中不同的行高?

【问题讨论】:

这是问题所在:plnkr.co/edit/9Ndmv6R0ebWWNN6Ab3yz 有什么更新吗??同样的问题... 并非如此,正如您在此链接中看到的 github.com/angular-ui/ng-grid/issues/2656 ,我与他们取得了联系,但不幸的是,他们不想修复它...... 不!这真是一场灾难……这真是一个重要的功能……,他们怎么能忽略它? 您推荐的任何其他网格..? 【参考方案1】:

使用 CSS

[ui-grid-row] 
  display: table-row;


.ui-grid-row, .ui-grid-cell 
  height: auto!important;


.ui-grid-cell 
  float: none;
  display: table-cell;


.ui-grid-header-cell, .ui-grid-cell-contents 
  white-space: normal;
  padding: 2px;
  word-break: break-word;

使用 javascript

当您使用多选时,检查列的高度不要改变,因此您可以设置enableRowHeaderSelection: false。它将隐藏此列,但您仍然可以选择行,或者如果您愿意,您可以使用@jibap 中的此功能来对齐容器http://plnkr.co/edit/JwbEmPhJq2LInfUNncdi?p=preview

【讨论】:

【参考方案2】:

如果没有预定义的行高,虚拟化几乎是不可能的。您会发现任何虚拟化列表工具都有相同的限制。例如检查Ionic's collection-repeat。

问题在于 UI-Grid 在任何给定时间仅显示所有行的子集,但为了使它出现就像所有行都在那里一样,它必须创建空渲染行周围的空间。如果它不知道所有行的高度,它就不知道应该有多少空白空间。

如果您想要自动行高,则必须单独渲染每一行,测量它,然后总结所有高度。这会彻底破坏浏览器。

【讨论】:

以上是关于使用 rowHeight 的 ui-grid 行高:'auto'的主要内容,如果未能解决你的问题,请参考以下文章

ngx datatable垂直滚动,rowheight设置为auto

iOS开发tips-UITableViewUICollectionView行高/尺寸自适应

iOS开发tips-UITableViewUICollectionView行高/尺寸自适应

我想更改DataGrid选定的行高,而DataGrid中的数据保持不变

iPhone + UITableView + 行高

字幕单元格的 Swift 自动行高