【问题标题】:Manage different Views/Widgets for different screen orientations in Android?在 Android 中为不同的屏幕方向管理不同的视图/小部件?
【发布时间】:2016-11-19 03:53:53
【问题描述】:

假设我定义了两个具有相同名称的布局,并将其中一个放在“layout-land”目录中。

如果两个布局文件包含相同的视图(和视图 id),那么我的片段/活动将找到它们并且那里不会有问题。

但是,我面临的情况是纵向和横向设计确实不同,我需要更改每个布局文件中实现的自定义视图/小部件类型。

如果视图 id 或视图类型不同或未找到,则可能导致 NullPointer 异常或 ClassCast 异常。

我不喜欢在我的片段代码中检查类型或空值的想法,我认为必须有更好的方法来做到这一点,但我还没有找到。

有谁知道实现这一目标的“酷”或至少更优雅的方式?

谢谢!

【问题讨论】:

    标签: android android-layout android-view


    【解决方案1】:

    在您的布局文件夹中,资源内部,您需要有两个单独的布局文件,一个用于纵向,一个用于横向。

    例子:

    - res
    - - layout
    - - - main_layout
    - - - main_layout-land
    

    你有它,你的应用现在将使用两个不同的布局文件,这取决于它的方向。请参阅This stackoverflow 了解更多信息。

    【讨论】:

    • 你好乔希,请阅读我的问题描述。我知道布局资源处理,我需要知道如何管理布局文件之间视图和小部件完全不同的情况。
    • 由于 Android 会在您更改设备状态时完全创建一个新活动,因此您可能会监听设备方向的更改并启动一个新活动。 stackoverflow.com/questions/5726657/… 看到这个线程。根据方向,您可以启动一个全新的活动或用适当的活动替换片段。这应该有助于解决您的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    • 2012-09-22
    • 2012-07-17
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    相关资源
    最近更新 更多