【问题标题】:Android:Landscape mode throughout the application [duplicate]Android:整个应用程序的横向模式[重复]
【发布时间】:2014-08-21 12:27:51
【问题描述】:

如何在我的应用程序中设置横向模式?我可以加android:screenOrientation="landscape"

在我的所有活动中。但是它的代码非常冗余,并且随着应用程序的发展可能容易出错。我不能只在一个地方为我的整个应用程序设置横向模式吗?

【问题讨论】:

  • 那一行代码怎么容易出错?只是想知道。
  • 我可能会错过一些可能没有设置的活动!您必须非常小心,每次编写活动时都必须设置此方向属性
  • @shomeser 我认为您没有正确阅读问题

标签: android android-layout android-screen


【解决方案1】:

创建一个可以扩展所有活动的 AbstractActivity。 这将以编程方式为所有这些设置方向。

public abstract class LandscapeActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
}

【讨论】:

    【解决方案2】:

    是的,您既可以通过编程方式执行此操作,也可以为您的所有活动创建一个所有活动都扩展的 AbstractActivity。

    public abstract class AbstractActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
    }
    

    这个抽象活动也可以用于全局菜单。

    【讨论】:

    【解决方案3】:

    简而言之,你不能。将其添加到 application 元素不会执行任何操作。您别无选择,只能将其添加到每个活动中。

    【讨论】:

    • 你确定吗?虽然我也找不到可以设置一次的东西。
    • 哈! Android 开发没有什么是确定的。但是,是的,我确定。没有已知的方法可以通过清单完成完整的应用程序方向设置。至少在写这篇文章的时候和版本 19 之前没有。有种方法可以通过扩展自定义抽象 Activity 基类或子类化 Application 类来做到这一点,但这些方法似乎不值得除非您出于其他原因需要它们。
    【解决方案4】:
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    

    另见Android, landscape only orientation?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多