Как создать таблицу с фиксированной длиной внутри scrollView в Appcelerator Titanium? - PullRequest
1 голос
/ 17 ноября 2011

Я пытаюсь добавить некоторые imageViews и tableView в scrollView в Titanium. Я хочу, чтобы scrollView был прокручиваемым, но не tableView внутри, поэтому я установил tableView.scrollable в false. Тем не менее, даже если высота scrollView превышает высоту экрана, его нельзя прокрутить. Поскольку не рекомендуется помещать tableView в scrollView, мне интересно, есть ли лучший способ создать таблицу с фиксированной длиной внутри scrollView в Titanium?

Вот мой код:

var view = Ti.UI.createScrollView({
    contentWidth:'auto',
    contentHeight:'auto',
    top:0,
    showVerticalScrollIndicator:true,
    showHorizontalScrollIndicator:true,
});

var imageview1 = Ti.UI.createImageView({
    image: "../images/headers/gscs_logo.png",
    height: 80,
    left: 10,
    right: 10,
    top: 10,
});

var imageview2 = Ti.UI.createImageView({
    image: "../images/headers/wellness_logo.png",
    height: 80,
    left: 10,
    right: 10,
    top: 90,
});

view.add(imageview1);
view.add(imageview2);

var tableview = Ti.UI.createTableView({
    data: [{title:'a'}, {title:'b'}, {title:'c'}, {title:'d'}, {title:'e'}, {title:'f'}, {title:'g'}],
    top: 180,
    scrollable: false,
});

view.add(tableview);

Ti.UI.currentWindow.add(view);

Это - это окно, которое я получил (StackOverflow не позволяет новым пользователям публиковать изображения, извините).

Это - это окно, которое я хочу. Таблица имеет фиксированное количество строк, и ее родительское представление можно прокручивать.

Я также пытался установить currentWindow.layout в «вертикальное», но это не удалось, поскольку ни scrollView, ни tableView не будут отображаться.

Спасибо за ваше терпение и помощь!

Ответы [ 2 ]

4 голосов
/ 18 ноября 2011

Посмотрев на Kitchen Sink, демонстрационное приложение Titanium, я понял, как это сделать: просто установите tableview.style в Titanium.UI.iPhone.TableViewStyle.GROUPED и установите imageView в качестве tableview.headerView.

var imageview = Ti.UI.createImageView({
    image: "../images/headers/bakerinstitute_logo.png",
    height: 100,
    left: 40,
    right: 40,
    top: 10,
});

var tableview = Ti.UI.createTableView({
    data: [{title:'a', header:'first one'}, {title:'b'}, {title:'c'}, {title:'d'}, {title:'e'}, {title:'f'}, {title:'g'}, {title:'h'}, {title:'i'}, {title:'j'}, {title:'k', header:'last one'}],
    style:Titanium.UI.iPhone.TableViewStyle.GROUPED,
    backgroundColor:'transparent',
    rowBackgroundColor:'white',
    headerView: imageview
});

Ti.UI.currentWindow.add(tableview);
0 голосов
/ 17 ноября 2011

Вам следует проверить UICatalog пример кода , предоставленный Apple. Существует много просмотров, и некоторые из них выглядят так, как вы указали ссылку. Надеюсь, что поможет!

...