2014-10-22 215 views
-2

我有一個很長的tabBar,它是水平滾動的,我希望選中的標籤在最左邊對齊。例如,如果我選擇中間的選項卡,它應該在最左側顯示。我有下一個和上一個按鈕來選擇下一個和上一個選項卡。因此,如果現在通過單擊prev按鈕選擇左側最大選項卡的任何選項卡,它應該在最左側可見。總的來說,我希望選中的選項卡在最左側可見。滾動標籤面板的標籤欄

任何幫助將不勝感激。

回答

0

最簡單的如果你有一個tabButtons的修復大小。 通過這種方式,您可以計算出您必須滾動到一邊的程度。 一個好的開始將是設置tabBar.setScrollable({direction:'horizo​​ntal'})。

但無論如何。對於手機或平板電腦來說,這似乎不太合適。你應該想出另一個想法。

+0

我有滾動方向:水平,並且標籤的寬度根據標籤的文本是自動的。我試過的是你可以從http://stackoverflow.com/questions/16685963/sencha-touch-scroll-to-last-tab-on-tabbar得到,但它沒有做我想要的東西 – 2014-10-22 08:57:11

+0

你能解釋它是如何不是做你想做的事? – Dinkheller 2014-10-22 13:29:44

0

我工作圍繞它,並得到了一個解決方案的小動作在一個tabpanel的activeitemchange將做任務

TabPanelActiveItemChange:功能(集裝箱,價值,屬性oldValue,eOpts){

 var count = container.innerItems.length; 
     var currentIndex = Ext.Array.indexOf(container.innerItems, value); 
     var tabBar = container.getTabBar(); 
     // to keep the selected item in left or visible in smaller width screen. 
     var totalWidth = container.innerItems[count - 1].tab.element.getX() - container.innerItems[0].tab.element.getX() + container.innerItems[count - 1].tab.element.getWidth(); 
     if (totalWidth > window.innerWidth) { 
      var widthToScroll = container.innerItems[currentIndex].tab.element.getX() - container.innerItems[0].tab.element.getX(); 
      var scroller = tabBar.getScrollable().getScroller(); 
      scroller.scrollTo(widthToScroll, 0, true); 
     }