【问题标题】:DT package: styleColorbar() not working on Android tabletsDT 包:styleColorbar() 不适用于 Android 平板电脑
【发布时间】:2016-01-19 16:34:10
【问题描述】:

我使用出色的 DT 包开发了一个 R shiny 应用程序来处理数据表。其中一个表格使用了styleColorbar 辅助函数,它在表格单元格中生成与每个单元格的值成比例的彩色条。

这在 Windows 中运行的 Chrome 和 Firefox 中运行良好,但在 Chrome 或 Sony Experia Android 平板电脑上的本机浏览器中运行时不显示彩条。

这里的演示网页也是如此:https://rstudio.github.io/DT/functions.html。 所以我认为这不是我使用代码所特有的问题。

该函数基本上是一个 JS 包装器……而我对 JS 的了解恰好为零。

styleColorBar = function(data, color, angle=90) {
  rg = range(data, na.rm = TRUE, finite = TRUE)
  r1 = rg[1]; r2 = rg[2]; r = r2 - r1
  JS(sprintf(
    "isNaN(parseFloat(value)) || value <= %s ? '' : 'linear-gradient(%sdeg, transparent ' + (%s - value)/%s * 100 + '%%, %s ' + (%s - value)/%s * 100 + '%%)'",
  r1, angle, r2, r, color, r2, r
  ))
}

我在以下情况下使用它:

dat = DT::datatable(diversity,
      options = list(
        scrollX = TRUE, 
        scrollY = 400,
        autoWidth = TRUE,
        columnDefs = list(
          list(visible = FALSE, targets = hidden)
        )
      ),
      style = "bootstrap", 
      class = "table-striped table-compact", 
      extensions = c("FixedColumns"),
      )
       %>%
formatStyle(
      c(1),
      background = styleColorBar(c(0,diversity[,1]), 'olivedrab'),
      backgroundSize = '99% 90%',
      backgroundRepeat = 'no-repeat',
      backgroundPosition = 'center'
    ) 

谁能提出在 Android 平台上可能出现的问题和解决方法?

编辑: 我相信这可能是线性梯度语法的问题,它与早期版本的 Android 存在兼容性问题。但是,我在 Android 4.1 平板电脑上对其进行了测试,所以不确定是什么问题。

【问题讨论】:

    标签: javascript android r shiny dt


    【解决方案1】:

    我在 Github 上提出了同样的问题,易慧的回复可以在这里找到:https://github.com/rstudio/DT/issues/222。他认为这个问题可以通过使用-webkit- 来解决。其他在线信息也表明这应该适用于较旧的 Android 系统。我会在这里发布他的代码以帮助其他人:

    styleColorBar2 = function(...) {
      sub('linear-gradient', '-webkit-linear-gradient', styleColorBar(...))
    }
    

    我不确定如何从 R 中检测系统上运行的 Android 版本,但这是一个单独的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多