为 Titanium Mobile TableView 创建覆盖层

发布于 2024-11-02 02:09:42 字数 1045 浏览 1 评论 0原文

我正在尝试创建一个在 TableView 上滑动的 DatePicker 以编辑日期字段。问题是 DatePicker 出现在 TableView 后面 - 您可以看到它的一部分,因为 TableView 是透明的。

在此处输入图像描述

我尝试为一个提供比另一个更高的 zIndex 值,两种方式都可以,但这没有帮助。日期选择器是视图中的选择器控件,我用动画将其向上滑动。

如何用不同的视图覆盖 TableView?

编辑:该表非常复杂,因为其中包含各种类型的数据,因此复制和粘贴会有点过分。但这是相关部分:

var win = Ti.UI.createWindow();
var table = Ti.UI.createTableView({zIndex: 1});

// some table sections are added here

// create picker layer
var row = Ti.UI.createTableViewRow({zIndex: 2});
var picker_view = Titanium.UI.createView({
  height: 251,
  bottom: -251,
  zIndex: 3,
  visible: false
  });

var picker = Ti.UI.createPicker({
  type: Ti.UI.PICKER_TYPE_DATE,
  selectionIndicator: true
  });
picker_view.add(picker);

row.addEventListener('click', function()
  {
  picker_view.visible = true;
  var slide_in = Titanium.UI.createAnimation({bottom:0});
  picker_view.animate(slide_in);
  });

row.add(picker_view);

some_section.add(row);
win.add(table);

谢谢!

I'm trying to create a DatePicker that slides in over a TableView in order to edit a date-field. The problem is that the DatePicker appears behind the TableView - you can see a part of it because the TableView is transparent.

enter image description here

I tried giving one a higher zIndex value than the other, both ways, but that didn't help. The datepicker is a picker control in a view, which I slide up with an animation.

How does one overlay a TableView with a different view?

Edit: the table is quite complicated because of the various types of data in it, so copy&paste would be overkill. But here's the relevant part:

var win = Ti.UI.createWindow();
var table = Ti.UI.createTableView({zIndex: 1});

// some table sections are added here

// create picker layer
var row = Ti.UI.createTableViewRow({zIndex: 2});
var picker_view = Titanium.UI.createView({
  height: 251,
  bottom: -251,
  zIndex: 3,
  visible: false
  });

var picker = Ti.UI.createPicker({
  type: Ti.UI.PICKER_TYPE_DATE,
  selectionIndicator: true
  });
picker_view.add(picker);

row.addEventListener('click', function()
  {
  picker_view.visible = true;
  var slide_in = Titanium.UI.createAnimation({bottom:0});
  picker_view.animate(slide_in);
  });

row.add(picker_view);

some_section.add(row);
win.add(table);

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

很快妥协 2024-11-09 02:09:42

尝试将选择器添加到窗口而不是表中。

Try to Add the picker in the window not in table.

江挽川 2024-11-09 02:09:42

不要将视图添加到行,而是将其添加到窗口。

不要在视图上设置可见性,它是无关紧要的,因为您正在上下滑动它。

另外,您确实将 zIndexes 混淆了,在此用例中并不真正需要它们。

dont add the view to the row, add it to the window.

dont set visibility on the view, it is irrelevant since you are sliding it up and down.

also you really are confusing things with the zIndexes, they are not really needed in this use case.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文