เค้าโครงแถว / คอลัมน์แบบ Flex Box

 fillRow ( ... , flex = 1 , width = "100%" , height = "100%" ) fillCol ( ... , flex = 1 , width = "100%" , height = "100%" )
...
UI วัตถุที่จะใส่ในแต่ละเซลล์แถว / คอลัมน์แต่ละอาร์กิวเมนต์จะครอบครองเซลล์เดียว (หากต้องการใส่หลายรายการในเซลล์เดียวคุณสามารถใช้ tagList หรือ div เพื่อรวม) อาร์กิวเมนต์ที่ตั้งชื่อจะถูกใช้เป็นแอตทริบิวต์ในองค์ประกอบ div ที่ห่อหุ้มแถว / คอลัมน์
flex
กำหนดวิธีการกระจายพื้นที่ไปยังเซลล์ สามารถเป็นค่าเดียวเช่น 1 หรือ 2 เพื่อกระจายพื้นที่ว่างให้เท่า ๆ กัน หรือใช้เวกเตอร์ของตัวเลขเพื่อระบุสัดส่วน ตัวอย่างเช่น flex = c(2, 3) จะทำให้ช่องว่างถูกแบ่ง 40% / 60% ระหว่างสองเซลล์ ค่า NA จะทำให้เซลล์ที่เกี่ยวข้องมีขนาดตามเนื้อหา (โดยไม่เพิ่มหรือหดตัว)
width, height  
จำนวนรวมของความกว้างและความสูงที่จะใช้สำหรับทั้งแถว / คอลัมน์ สำหรับความสูงเริ่มต้นของ "100%" จะมีผลบังคับใช้พ่อแม่ต้องเป็น fillPage , fillRow / fillCol หรือองค์ประกอบ HTML อื่น ๆ ที่มีความสูงไม่ขึ้นกับความสูงของเนื้อหา

ลักษณะ

สร้างเค้าโครงแถวและคอลัมน์ด้วยเซลล์ที่มีสัดส่วนตามสัดส่วนโดยใช้รูปแบบโครงร่าง Flex Box ของ CSS3 เหล่านี้สามารถซ้อนกันเพื่อสร้างเค้าโครงสัดส่วนตามความชอบโดยพลการ คำเตือน: Flex Box ไม่ได้รับการสนับสนุนอย่างดีจาก Internet Explorer ดังนั้นควรใช้ฟังก์ชันเหล่านี้กับเบราว์เซอร์ที่สามารถใช้งานได้

รายละเอียด

หากคุณพยายามใช้ fillRow และ fillCol ในคอนเทนเนอร์ที่มี fillCol อื่น ๆ เช่น sidebarLayout , navbarPageหรือแม้แต่ tags$div คุณอาจพบว่าจะไม่ปรากฏ เนื่องจาก fillRow และ fillCol ผิดนัดที่ height="100%" ซึ่งจะทำงานภายในตู้คอนเทนเนอร์ที่กำหนดขนาดของตัวเอง (แทนที่จะลดขนาดของเนื้อหาตามปกติใน HTML)
เพื่อหลีกเลี่ยงปัญหานี้คุณมีสองทางเลือก:

  • ใช้เฉพาะ fillRow / fillCol ภายใน fillPage , fillRow หรือ fillCol
  • ให้อาร์กิวเมนต์ height ชัดเจนสำหรับ fillRow / fillCol

ตัวอย่าง

# เรียกใช้ตัวอย่างนี้ในเซสชัน R แบบโต้ตอบเท่านั้น if (interactive()) { ui <- fillPage(fillRow( plotOutput("plotLeft", height = "100%"), fillCol( plotOutput("plotTopRight", height = "100%"), plotOutput("plotBottomRight", height = "100%") ) )) server <- function(input, output, session) { output$plotLeft <- renderPlot(plot(cars)) output$plotTopRight <- renderPlot(plot(pressure)) output$plotBottomRight <- renderPlot(plot(AirPassengers)) } shinyApp(ui, server) }

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

R STUDIO

R for Pipes

R for Data import