创建平板电脑布局变体和为平板电脑布局创建文件夹之间的区别

Difference between creating a tablet layout variation and creating a folder for tablet layout

你好,我想问一下创建平板电脑布局变体和为布局创建文件夹(例如:"res/layout-w600dp/")有什么区别?

很抱歉,我刚开始为小型(手机 phones/android 手机)和大型(平板电脑)设备制作 android 应用程序。

有人能帮帮我吗?我真的不知道如何为平板电脑布局。我不知道当应用程序在平板电脑上 运行 时,平板电脑的布局是否会自动显示,或者我必须在 java 部分放置一些代码。我已经阅读了一些文档,但我无法完全理解它。对不起。

感谢您的帮助。

如果您有两个布局文件:

res/layout/
    activity_main.xml

res/layout-sw600dp/
    activity_main.xml

并且您有一个调用 setContentView(R.layout.activity_main) 的 activity,您无需执行任何其他操作:第一个版本将在 phone 上加载,第二个将在加载到平板电脑上。

如果每个布局文件都有具有相同 ID 的视图(也许它们只是排列方式或大小不同),那么您可以按照您想要的任何逻辑进行操作,并且两者都适用。

不过,通常情况下,平板电脑文件会包含 phone 版本不包含的视图。在这种情况下,您应该在尝试使用它们之前检查这些视图是否存在。想象一下,平板电脑版本有一个视图 android:id="@+id/right_panel" 而 phone 版本没有。你可以写:

View rightPanel = findViewById(R.id.right_panel);

if (rightPanel != null) {
    // do something for tablets
}