首页 > 解决方案 > shinydashboard vs shinydashboardPlus - 仪表板边栏标题差异

问题描述

我有一个用 shinydashboard 构建的 Shiny 应用程序,我刚刚发现了 shinydashboardPlus。一个不错的选择是让 sidebarMenu “最小化”,或者在最小化时它不会完全消失,而只是显示每个 menuItem 的图标。但是,使用shinydashboardPlus,在缩小时,标题会被截断。使用闪亮仪表板,标题保持不变,但侧边栏完全消失。

示例代码:

library(shiny)
library(shinydashboard)
#library(shinydashboardPlus)

# Basic dashboard page template
shinyApp(
  ui = dashboardPage(
    dashboardHeader(title = "Example"),
    dashboardSidebar(#minified = TRUE,
      sidebarMenu(
        menuItem('Menu1', tabName = 'Menu1', 
                 icon = icon('folder-open')),
        menuItem('Menu2', tabName = 'Menu2',
                 icon = icon('code-branch'))
      )
    ),
    dashboardBody()
  ),
  server = function(input, output) { }
)

保留注释标记并使用shinydashboard运行它,并最初给出:

在此处输入图像描述

而当点击汉堡最小化侧边栏时,整个侧边栏消失:

在此处输入图像描述

如果删除注释标记以便它使用 shinydashboardPlus 运行,则将其最小化会给出这个,我在侧边栏中有图标,但标题被截断:

在此处输入图像描述

有没有办法让shinydashboardPlus 缩小只显示图标,但不砍掉标题?

标签: rshinyshinydashboardshinydashboardplus

解决方案


干得好

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)

# Basic dashboard page template
shinyApp(
  ui = dashboardPage(
    dashboardHeader(title = "Example"),
    dashboardSidebar(#minified = TRUE,
      sidebarMenu(
        menuItem('Menu1', tabName = 'Menu1', 
                 icon = icon('folder-open')),
        menuItem('Menu2', tabName = 'Menu2',
                 icon = icon('code-branch'))
      )
    ),
    dashboardBody(
      tags$style(
        '
        @media (min-width: 768px){
          .sidebar-mini.sidebar-collapse .main-header .logo {
              width: 230px; 
          }
          .sidebar-mini.sidebar-collapse .main-header .navbar {
              margin-left: 230px;
          }
        }
        '
      )
    )
  ),
  server = function(input, output) { }
)

如果您有极长的标题,请 更改width和数字。margin-left在此处输入图像描述


推荐阅读