启动 Activity 时平板电脑 Android 方向

发布于 2024-12-09 02:53:55 字数 340 浏览 0 评论 0原文

我在三星平板电脑上的方向处理上遇到了一个奇怪的问题。 基本上,我有这个应用程序,如果在平板电脑上运行,它应该只在横向模式下运行,如果我在手机上运行,​​则应该在纵向模式下运行。 为此,我检查我所在的设备,然后使用 onConfigurationChanged 回调来设置正确的布局。 它在手机上完美运行。但是在平板电脑上,如果我将其保持在纵向位置,当在同一应用程序中启动另一个活动时,我会看到主屏幕上有闪光(这并不酷),因此方向(以及 Android 栏)处于纵向位置,第二个活动以纵向加载(这是错误的),不久之后第二个活动将方向更改为正确的横向位置。 有没有一种方法可以直接在横向中简单地加载第二个活动? 谢谢

弗朗西斯科

I have a strange problem on orientation handling on Samsung Tablets.
Basically, I have this app that it is supposed to run only in Landscape if running on tablet and portrait if i'm on a phone.
To do that I check on wich device I'm, and then I use the onConfigurationChanged callback to set the right layout.
It works perfectly on the phone. But on tablet, if I'm holding it in portrait position, when launch another activity within the same app I see a flash oh the home screen (that's not cool), so the orientation (and also the android bar) goes in portrait position, the second activity is loaded in portrait (that's wrong) and just after a while the second activity change orientation to the right landscape position.
There is a way to simple load the second activity directly in landscape?
Thanks

Francesco

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

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

发布评论

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

评论(2

单挑你×的.吻 2024-12-16 02:53:55

由于您使用的是相同的 Activity,只需测试 Android 版本并以编程方式设置方向。像这样:

  if(Build.VERSION.SDK_INT >= 11){
           //If build is tablet honeycomb or greater sdk such as 12, or 13
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


    }
    else{
        //If device SDK is lower than 11 the view is set to PORTRAIT
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }

您也可以执行

Build.VERSION_CODES.HONEYCOMB

平板电脑测试。这对于蜂窝来说更具体。您还可以执行 HONEYCOMB_MR1 和 HONEYCOMB_MR1 操作。先生2。

Since you are using the same activity just test for the android version and set the orientation programatically. Like this:

  if(Build.VERSION.SDK_INT >= 11){
           //If build is tablet honeycomb or greater sdk such as 12, or 13
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


    }
    else{
        //If device SDK is lower than 11 the view is set to PORTRAIT
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }

You could also do

Build.VERSION_CODES.HONEYCOMB

To test for tablet. This would be more specific to honeycomb. You also do HONEYCOMB_MR1 & MR2.

雨后咖啡店 2024-12-16 02:53:55

如果您想直接以横向方式加载任何 Activity,请直接在 AndroidManifest.xml 文件内的特定活动中提及 screenOrientation:

android:screenOrientation="landscape"

这将直接以横向方式加载您的 Activity。

If you want to load any activity directly in landscape then mention screenOrientation directly in a particular activity inside the AndroidManifest.xml file:

android:screenOrientation="landscape"

this will load your activity directly in landscape orientation.

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