2013-03-23 32 views
5

Tôi có một Ext.panel.Panel mà tôi muốn tự động thêm các bảng "nhỏ" khác đại diện cho "thứ" khác nhau trong ứng dụng của tôi. Bảng này nằm ở trên cùng của lưới và có cùng chiều rộng với lưới. Khi bảng điều khiển "nhỏ hơn" được thêm động vào "bảng điều khiển vùng chứa" này, tôi muốn các ô được thêm theo chiều ngang và chiều dọc nếu tổng chiều rộng của tất cả các ô "nhỏ" lớn hơn chiều rộng của vùng chứa.ExtJS Layout, Horizonally sau đó phát triển theo chiều dọc

Tôi đã thử 'fit', 'hbox', 'vbox', mọi thứ.

Tôi có thiếu loại bố cục không?

+1

bạn đã thử sử dụng bố cục 'tự động' và chỉ đặt 'display: inline-block' trên các bảng lồng nhau? Bạn đang mong đợi các bảng điều khiển bên ngoài để thực sự có được cao hơn hoặc là nó đủ mà các tấm bên trong chảy qua bảng điều khiển theo chiều ngang và sau đó xuống? – wantok

+0

Tôi chắc chắn cũng muốn bảng điều khiển container phát triển. Tôi sẽ thử mẹo của bạn để xem nó có hiệu quả không, cảm ơn! –

Trả lời

4

Những gì bạn thường được gọi là bố cục flow, mà ExtJS không có trong hộp (nếu bạn hỏi tôi, có một chút ngớ ngẩn không phải vì bố cục rất phổ biến và thực tế là một trong những áp dụng trên hầu hết các ví dụ dataview của họ, nhưng bằng cách sử dụng css chứ không phải là một bố trí).

Nhưng có thể dễ dàng đạt được bằng cách sử dụng bố cục cột không có columnWidth được xác định. Sao chép this answer:

Ext.create('Ext.Panel', { 
     width: 500, 
     height: 280, 
     title: "ColumnLayout Panel", 
     layout: 'column', 
     renderTo: document.body, 
     items: [{ 
      xtype: 'panel', 
      title: 'First Inner Panel', 
      width: 250, 
      height: 90 
     },{ 
      xtype: 'panel', 
      title: 'Second Inner Panel', 
      width: 200, 
      height: 90 
     }, { 
      xtype: 'panel', 
      title: 'Third Inner Panel', 
      width: 150, 
      height: 90 
     }] 
    }); 

enter image description here

+0

Bây giờ tôi có thể quay trở lại công việc của riêng mình ... Tôi sẽ xem xét điều này ... cảm ơn! –

+0

Điều này khiến tôi trở thành một phần của con đường ... Tôi đang thêm những thứ động (không phải trong quá trình cấu hình) ... tôi có cần biết chiều rộng chiều rộng của mình trước khi thêm nó không? –

+0

Chiều rộng của container hoặc các mặt hàng? – Izhaki

5

tôi thấy rằng khi sử dụng ví dụ trên trong ExtJS 4.2.2 các tấm được xếp chồng lên nhau theo chiều dọc.

tôi cần phải thêm:

style: { 
    float: 'left' 
}, 

cho từng hạng mục và sau đó tất cả hoạt động tốt.

Tôi đã thử nghiệm với cả cấu hình tĩnh (như ví dụ ở trên) và cũng có thêm/xóa động (sử dụng vùng chứa tùy chỉnh cho từng mục con). Bảng điều khiển vùng chứa được hiển thị lại theo kiểu giống như dòng chảy mỗi lần. Cũng chính xác khi thay đổi kích thước cửa sổ trình duyệt - các mục con được di chuyển để phù hợp với kích thước bảng điều khiển mới.

Murray

+0

nó có hoạt động cho các mục động chỉ trên 4.2.2 không? Tôi đã thử nó, nhưng nó không hoạt động trên 3.x – sidgate

+0

Nó làm việc cho 4.2.2 kết hợp với cột loyout – monstergold

+0

không thể cảm ơn đủ :) – mcabral

Các vấn đề liên quan