splitLayout中的多个colourpicker,颜色框被隐藏

时间:2018-02-27 14:31:25

标签: r colors shiny

当两个颜色选择器使用 splitLayout 并排使用时,颜色映射会被隐藏。可以使用tags$style...HTML()轻松修复任何想法吗?

  • 指向 colourpicker 包的链接:CRANGitHub

以下是一个例子:

library(shiny)
library(colourpicker)

shinyApp(
  ui = fluidPage(
    sidebarPanel(
      splitLayout(
        colourInput("PlotThemeColour1",
                    "Plot theme shade 1",
                    "#C2C2C2"),
        colourInput("PlotThemeColour2",
                    "Plot theme shade 2",
                    "#E5E5E5"))),
    mainPanel(textOutput("myCols"))
  ),

  server = function(input, output, session) {
    output$myCols <- renderText({
      paste(input$PlotThemeColour1, "and", input$PlotThemeColour2)

    })
  })

输出

enter image description here

2 个答案:

答案 0 :(得分:6)

我不确定修复它的正确方法是什么。但一个快速的解决方法是覆盖导致它的CSS。目前,该{c} .shiny-split-layout>div overflow的值设置为autoshiny.css中存在此值,因此使用内联css以overflow:visible覆盖它似乎解决了这个问题。

enter image description here

library(shiny)
library(colourpicker)

shinyApp(
  ui = fluidPage(
     tags$style(HTML('.shiny-split-layout>div {
                         overflow:visible;
                                   }')), 
    sidebarPanel(
      splitLayout(
        colourInput("PlotThemeColour1",
                    "Plot theme shade 1",
                    "#C2C2C2"),
        colourInput("PlotThemeColour2",
                    "Plot theme shade 2",
                    "#E5E5E5"))),
    mainPanel(textOutput("myCols"))
  ),

  server = function(input, output, session) {
    output$myCols <- renderText({
      paste(input$PlotThemeColour1, "and", input$PlotThemeColour2)

    })
  })

方法#2:

使用cellArgs的{​​{1}}来覆盖单个单元格css。

splitLayout

答案 1 :(得分:3)

splitLayoutcellArgs可以阻止您的溢出:

library(shiny)
library(colourpicker)

shinyApp(
  ui = fluidPage(
    sidebarPanel(
      splitLayout(cellArgs = list(style = "overflow: visible;"),
        colourInput("PlotThemeColour1",
                    "Plot theme shade 1",
                    "#C2C2C2"),
        colourInput("PlotThemeColour2",
                    "Plot theme shade 2",
                    "#E5E5E5"))),
    mainPanel(textOutput("myCols"))
  ),

  server = function(input, output, session) {
    output$myCols <- renderText({
      paste(input$PlotThemeColour1, "and", input$PlotThemeColour2)

    })
  })