0:00:01.060,0:00:04.260 我们想要实现的是这里所示的设计方案 0:00:04.260,0:00:08.527 其优点在于 使用的大多数 UI 元素都是 0:00:08.527,0:00:09.060 我们之前见过的 0:00:09.060,0:00:11.570 为了防止复杂布局的数量爆炸性增长 0:00:11.570,0:00:14.300 我们将要利用三种 0:00:14.300,0:00:15.520 Android 布局功能 0:00:15.520,0:00:17.240 第一种我们以前见过 0:00:17.240,0:00:20.470 手机和平板电脑上预报列表的差别 0:00:20.470,0:00:23.390 只在于列表项周围的间距 0:00:23.390,0:00:26.860 好在这很容易添加到预报列表 0:00:26.860,0:00:30.960 我们可以使用维度来赋予平板电脑上的相同布局更多空间 0:00:30.960,0:00:35.720 在预报列表项布局中 我们可以向外围布局添加内间距维度 0:00:35.720,0:00:39.710 之所以使用内间距而非外间距 是因为我们希望将内容内嵌到布局中 0:00:39.710,0:00:40.580 如果使用外间距 0:00:40.580,0:00:44.110 行选择器将不会覆盖整个列表项 0:00:44.110,0:00:47.970 我们也为两个温度之间的空间使用不同维度 0:00:47.970,0:00:49.480 请注意 我们同时使用 right 和 end 0:00:49.480,0:00:52.260 以确保该布局支持从右向左的镜像 0:00:53.340,0:00:56.110 因此 在资源文件中 我们创建一个维度来更新 0:00:56.110,0:00:58.860 两个温度之间的额外内间距和空间 0:00:58.860,0:01:00.670 该布局也更新完毕 0:01:00.670,0:01:03.430 我使用了 sw600dp-port 0:01:03.430,0:01:07.100 也就是说 这些更改只会应用于纵向方向的设备 0:01:07.100,0:01:10.130 以及边界宽度至少为 600 dp 的视图 0:01:10.130,0:01:14.890 我们要利用的第二项功能是通过 include 标记实现的布局复用 0:01:14.890,0:01:16.430 我们可以看到 0:01:16.430,0:01:19.840 纵向和横向详细信息 Fragment 使用相同的视图 0:01:19.840,0:01:22.730 fragment.detail 视图已经包含这些布局 0:01:22.730,0:01:26.520 请注意 在 include 布局时 我们可以为其分配新的布局参数 0:01:27.530,0:01:29.310 在 Sunshine 里不会用到这个 0:01:29.310,0:01:32.150 在 include 布局时 若在该布局中使用 merge 标记 0:01:32.150,0:01:34.900 可以避免添加额外的容器 0:01:34.900,0:01:37.810 最后 我们要再次使用 Ref 0:01:37.810,0:01:40.930 Ref 可让我们为资源指定别名 0:01:40.930,0:01:43.150 可以看到 在平板电脑的横向模式中 0:01:43.150,0:01:46.250 详细信息视图应当指向视图的垂直版本 0:01:46.250,0:01:50.850 我们将创建一个指向 fragment_detail_start 的 Ref 0:01:50.850,0:01:54.720 并确保它指向正确的详细信息 Fragment 以获取正确配置 0:01:54.720,0:01:56.290 在下一课中 这对我们会有所帮助