2017-09-21 1 views
1

Ich habe eine Shiny-Anwendung mit einer fluidPage und einem Layout mit sidebarPanel und mainPanel erstellt. Im Moment benutze ich einen Button, der das sidebarPanel minimiert, aber wenn das passiert, behält das mainPanel seine Breite bei. Was ich möchte, ist, dass sich das HauptPanel an die neue Bildschirmgröße anpasst und das gesamte Fenster verwendet, anstatt die ursprünglich verwendeten 66% zu behalten.R Shiny - Ändern der Größe des MainPanel-Fensters, wenn ich das sidebarPanel minimiere

Dies ist die Schaltfläche Ereignis, das ich in der server.r Datei bin mit:

observeEvent(input$showpanel, { 

if(input$showpanel == TRUE) { 

shinyjs::show(id = "Sidebar") 
shinyjs::enable(id = "Sidebar") 
} 
else { 

    shinyjs::hide(id = "Sidebar") 
} 
}) 

Dies ist die Taste I in der ui.r Datei verwenden, die derzeit auf dem oberen Rand des Fensters Mainpanel .

mainPanel(
    bsButton("showpanel", "Show/hide sidebar", type = "toggle", value = TRUE), 

Sie wissen nicht, ob es eine Möglichkeit gibt, CSS oder HTML an das Mainpanel Fenster hinzufügen, wenn ich die sidebarPanel verstecken.

Antwort

3

Sie können die Breite erhöhen, indem Sie die Klasse mainPanel von col-sm-8 in col-sm-12 ändern. Sehen Sie sich den folgenden Code an:

library(shiny) 
library(shinyjs) 
library(shinyBS) 

ui <- fluidPage(
    useShinyjs(), 
    sidebarLayout(

    sidebarPanel(id = "Sidebar", 
     h2("This is a sidebar panel") 
    ), 

    mainPanel(id ="Main", 
     bsButton("showpanel", "Show/hide sidebar", type = "toggle", value = TRUE) 
    ) 
) 

) 

server <- function(input, output, session){ 
    observeEvent(input$showpanel, { 

    if(input$showpanel == TRUE) { 
     removeCssClass("Main", "col-sm-12") 
     addCssClass("Main", "col-sm-8") 
     shinyjs::show(id = "Sidebar") 
     shinyjs::enable(id = "Sidebar") 
    } 
    else { 
    removeCssClass("Main", "col-sm-8") 
     addCssClass("Main", "col-sm-12") 
     shinyjs::hide(id = "Sidebar") 
    } 
    }) 


} 

shinyApp(ui = ui, server = server) 
+0

Dies funktionierte in meiner Shiny-Anwendung SBista. Schätze deine Hilfe! – djturbine

Verwandte Themen