如何简单地处理方向变化?

发布于 2024-10-22 11:00:27 字数 45 浏览 6 评论 0原文

我不是在谈论做任何花哨的事情。我只是希望标准窗口和视图在用户旋转设备时旋转。

I'm not talking about doing anything fancy. I'd just like the standard windows and views to rotate when the user rotates the device.

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

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

发布评论

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

评论(3

独闯女儿国 2024-10-29 11:00:27

您需要告诉窗口它应该支持哪些方向:

var window = Ti.UI.createWindow({
    orientationModes: [
        Ti.UI.LANDSCAPE_LEFT,
        Ti.UI.LANDSCAPE_RIGHT,
        Ti.UI.PORTRAIT,
        Ti.UI.UPSIDE_PORTRAIT
    ]
});

window.open();

然后您可以使用侦听器来侦听方向变化,如下所示:

Ti.Gesture.addEventListener('orientationchange', function(e) {
    Titanium.API.info('Orientation changed');
});

编辑:我认为(虽然我从未尝试过)您也可以在 tiapp.xml 中设置它,其中具有自动应用于所有窗口的额外好处。

<orientations device="iphone">
    <orientation>Ti.UI.LANDSCAPE_LEFT</orientation>
    <orientation>Ti.UI.LANDSCAPE_RIGHT</orientation>
    <orientation>Ti.UI.PORTRAIT</orientation>
    <orientation>Ti.UI.UPSIDE_PORTRAIT</orientation>
</orientations>

You need to tell the window which orientations it should support:

var window = Ti.UI.createWindow({
    orientationModes: [
        Ti.UI.LANDSCAPE_LEFT,
        Ti.UI.LANDSCAPE_RIGHT,
        Ti.UI.PORTRAIT,
        Ti.UI.UPSIDE_PORTRAIT
    ]
});

window.open();

You can then listen on the orientation changes with a listener like so:

Ti.Gesture.addEventListener('orientationchange', function(e) {
    Titanium.API.info('Orientation changed');
});

Edit: I think (though I've never tried it) you can also set this in tiapp.xml, which has the added benefit of applying to all windows automatically.

<orientations device="iphone">
    <orientation>Ti.UI.LANDSCAPE_LEFT</orientation>
    <orientation>Ti.UI.LANDSCAPE_RIGHT</orientation>
    <orientation>Ti.UI.PORTRAIT</orientation>
    <orientation>Ti.UI.UPSIDE_PORTRAIT</orientation>
</orientations>
ˉ厌 2024-10-29 11:00:27
Titanium.Gesture.addEventListener('orientationchange', function(e) {
    Titanium.API.info('Gesture Change Detected');
    Ti.App.fireEvent('orientationchange', {eventObject:e});
});
Titanium.Gesture.addEventListener('orientationchange', function(e) {
    Titanium.API.info('Gesture Change Detected');
    Ti.App.fireEvent('orientationchange', {eventObject:e});
});
貪欢 2024-10-29 11:00:27

这是 Android 默认的工作方式。但不适用于 iPhone,所以只需编写这段代码

var win1 = Ti.UI.createWindow({
   title : 'Tab 1',
 orientationModes: [
        Ti.UI.LANDSCAPE_LEFT,
        Ti.UI.LANDSCAPE_RIGHT,
        Ti.UI.PORTRAIT,
        Ti.UI.UPSIDE_PORTRAIT
    ],
});

win1.open();

Ti.Gesture.addEventListener('orientationchange', function(e) {
    Titanium.API.info(Ti.Gesture.orientation);
});

,我认为这对您有用。

this is work on android default. But not work on iphone, so just write this code

var win1 = Ti.UI.createWindow({
   title : 'Tab 1',
 orientationModes: [
        Ti.UI.LANDSCAPE_LEFT,
        Ti.UI.LANDSCAPE_RIGHT,
        Ti.UI.PORTRAIT,
        Ti.UI.UPSIDE_PORTRAIT
    ],
});

win1.open();

Ti.Gesture.addEventListener('orientationchange', function(e) {
    Titanium.API.info(Ti.Gesture.orientation);
});

I, THINK THIS IS USEFUL TO YOU.

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