2015-03-03 2 views
0

Я разрабатываю представление с использованием Titanium Appcelerator для Android/ios.I нужно спроектировать сборщик времени (по горизонтали). Я разработал представление, которое представляет собой горизонтальное и введенное значение. enter image description hereAndroid/ios: Titanium Appcelerator горизонтальная прокрутка

Но не знаю, как выбрать значения, которые находятся под стрелкой. И как последний номер придет в центр (под стрелкой). Пожалуйста, руководство ..

КОД:

var win1 = Titanium.UI.createWindow({ 
    title:'Tab 1', 
    backgroundColor:'#fff'}); 
var scrollAlbums = Ti.UI.createScrollView({ 
    bottom: 10, 
    contentHeight: Ti.UI.SIZE, 
    contentWidth: Ti.UI.SIZE, 
    height: 95, 
    layout: 'horizontal', 
    showHorizontalScrollIndicator: false, 
    showVerticalScrollIndicator: true, 
    scrollType: 'horizontal', 
    horizontalWrap: false, 
    width: Ti.UI.FILL 
}); 
var data=[]; 
var circle=[]; 
for(var i=0;i<20;i++){ 
    circle[i] = Titanium.UI.createLabel({ 
     text:i, 
     height:50, 
     width:50, 
     borderRadius:25, 
     backgroundColor:'#336699'}); 
    scrollAlbums.add(circle[i]); 
} 
win1.add(scrollAlbums); 
+0

У вас уже есть код? –

+0

Вы можете проверить прокрутку страницы. http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.UI.ScrollableView –

+0

Код вашей существующей работы поможет. – Martin

ответ

1

Я изменил код для входа среднего числа при прокрутке концов:

var win1 = Titanium.UI.createWindow({ 
    title:'Tab 1', 
    backgroundColor:'#fff'}); 
var scrollAlbums = Ti.UI.createScrollView({ 
    bottom: 10, 
    contentHeight: Ti.UI.SIZE, 
    contentWidth: Ti.UI.SIZE, 
    height: 95, 
    layout: 'horizontal', 
    showHorizontalScrollIndicator: false, 
    showVerticalScrollIndicator: true, 
    scrollType: 'horizontal', 
    horizontalWrap: false, 
    width: Ti.UI.FILL 
}); 
var circleWidth = 50; 
function pick(e) { 
    if (e.type === 'dragend' && e.decelerate) { 
    return; 
    } 
    console.info('Number: ' + Math.round((e.source.contentOffset.x + (e.source.size.width/2))/circleWidth)); 
} 
scrollAlbums.addEventListener('scrollend', pick); 
scrollAlbums.addEventListener('dragend', pick); 
var data=[]; 
var circle=[]; 
for(var i=0;i<20;i++){ 
    circle[i] = Titanium.UI.createLabel({ 
     text:i, 
     height:circleWidth, 
     width:circleWidth, 
     borderRadius:circleWidth/2, 
     backgroundColor:'#336699'}); 
    scrollAlbums.add(circle[i]); 
} 
win1.add(scrollAlbums); 
win1.open(); 

Вы должны слушать как scrollend и dragend, потому что scrollend будет только огонь, если dragend замедлился. Затем со смещением scrollView плюс половина его общей ширины и ширины окружностей вы можете вычислить среднее число.

Но, как говорит Робин, вам лучше использовать ScrollableView и играть с hitRect и clipViews, чтобы показать не только выбранную страницу (число), но и несколько справа и слева от нее.

+0

слушатели не работают. scrollAlbums.addEventListener ('scrollend', pick); scrollAlbums.addEventListener ('dragend', pick); – GaneshKumar

+0

Как вы это понимаете? Я протестировал здесь точный код, и он отлично работал для меня. –

+0

Я стараюсь точно ваш код, ничего не редактируя, но scrollAlbums ничего не слышит и ничего не печатает в консоли. поэтому только запутались .. – GaneshKumar

Смежные вопросы