我正在使用Appcelerator Studio 4.7和SDK 5.4.0GA。
我想使用滑动后退手势返回到上一个视图控制器,但即使我在屏幕的左边缘开始我的手势,我的触摸也会移动ScrollableView
个视图。如果滑动后退手势未超过ScrollableView
,则可以正常工作。
使用Titanium Studio 3.4时一切都很好。目前无法使用它,因为它不受支持,您甚至无法登录。
这个问题是因为Appcelerator Studio,而不是因为SDK版本。我尝试使用具有相同SDK版本的Titanium Studio和Appcelerator Studio,并且只有Appcelerator Studio出现此问题。这就是我一年前坚持使用Titanium Studio的原因,但现在它不可能。
修改。如何在2分钟内重现:
1)文件 - >新 - >移动应用项目 - >默认合金项目
2)添加名为scrollable
的新控制器scrollable.xml:
<Alloy>
<Window class="container">
<ScrollableView>
<ScrollView>
<View height="5000" backgroundColor="#DBD6D6">
<Label top="20">View1</Label>
</View>
</ScrollView>
<ScrollView>
<View height="5000" backgroundColor="#FED2FB">
<Label top="20">View2</Label>
</View>
</ScrollView>
<ScrollView>
<View height="5000" backgroundColor="#DCEFD7">
<Label top="20">View3</Label>
</View>
</ScrollView>
</ScrollableView>
</Window>
</Alloy>
index.js:
function doClick(e) {
var scrollableController = Alloy.createController('scrollable',{
});
var view = scrollableController.getView();
$.index.openWindow(view);
}
$.index.open();
INDEX.XML:
<Alloy>
<NavigationWindow>
<Window class="container" id="index">
<Label id="label" onClick="doClick">Press me</Label>
</Window>
</NavigationWindow>
</Alloy>
3)这就是全部!
答案 0 :(得分:1)
首先,我在Appcelerator Studio上尝试过您的代码,所以我不确定在这种情况下Titanium Studio上发生了什么。
现在,由于Ti.UI.Window swipeToClose 属性在 Ti SDK 5.2.0.GA 之前不存在,因此您可以确定是否它真的是Studio错误或SDK功能。我确信这不是问题,只是误解。
来到您的查询,有两种方法(据我所知)提供 滑动到上一个窗口(让我们说SPW) 功能以及 Scrollable 功能,在 ScrollableView 及其父视图之间留一些填充,如下所示:
-Method 1 -
<Alloy>
<Window class="container" backgroundColor="white">
<ScrollableView backgroundColor="blue" clipViews="false" left="20" right="20">
<View backgroundColor="red">
<Label>View1</Label>
</View>
<View backgroundColor="green">
<Label>View2</Label>
</View>
<View backgroundColor="cyan">
<Label>View3</Label>
</View>
</ScrollableView>
</Window>
</Alloy>
这些是我在您的代码中所做的更改:
-Method 2 - 仅当您使用 hitRect property
知道ScrollableView的确切维度时,它才有效// replace the line in Method 1 with this one and apply the tss on it
<ScrollableView backgroundColor="blue" id="SC">
<强> scrollable.tss 强>
"#SC" : {
// (x,y) is top-left corner of hitRect and height/width will determine its dimension where user can swipe the scrollable view
// on remaining area, you can perform SPW feature
hitRect : {
x : 100,
y : 100,
height : 200,
width : 200
}
}
既然你已经看到了如何实现这两个功能的两种方式,我希望你发现它很有用。