您应用 UI 的设计与特定的设备外形无关。Android 应用程序需要适应多种不同类型的设备,从 4 英寸手机到 50 英寸电视,再到具有可调整大小窗口的 ChromeOS 设备。
您的应用用户界面绘制在窗口内,窗口的大小可以随意改变。您可以使用资源限定符为不同的窗口大小提供不同的布局。这些差异可能是由于设备屏幕尺寸的限制,也可能是用户使用多窗口模式来更改窗口大小导致的。
设计响应式内容
您应该为所有用户提供丰富的体验,因此您应该让应用中的每个屏幕充分利用可用的窗口空间。
例如,在占据手机屏幕全宽的窗口中运行的应用,在进入多窗口模式时可能会隐藏内容的详细信息,而在占据 ChromeOS 设备屏幕全宽的窗口中运行时,则可以扩展其用户界面以提供更多内容。
除了满足这些用户期望之外,通常还需要在更大设备上提供更多内容,以避免出现过多的空白或无意中引入不合适的交互。在下图中,您可以看到在将用户界面设计适应更大的窗口时可能出现的一些问题。
图 1. 在大宽度窗口中内容不足会导致空白区域尴尬,并且行长过长。
要详细了解如何设计响应式导航体验,请参阅响应式 UI 的导航。
提供定制的用户体验
提供超越扩展内容视图以填充可用空间的独特体验非常重要。您可以定制用户界面以提供适合给定窗口大小的理想用户体验,甚至使用完全不同的布局和小部件。
在图 2 中,当有足够的垂直空间时,BottomNavigationView
用作顶级导航。当窗口大小减小时,如图右侧所示,顶级导航将改为使用DrawerLayout
实现。
图 2. 当垂直空间有限时,底部导航栏将被导航抽屉替换。
以下是一些其他示例
Toolbar
可以根据可用空间的多少显示或隐藏操作菜单项。RecyclerView.LayoutManager
可以更改其跨度计数以充分利用窗口的大小- 随着可用空间的增加,您可以增加为自定义视图显示的详细信息量。
所有这些都是确保用户在任何地方运行您的应用程序时都能获得良好体验的绝佳方法。
您可以在material.io 上找到更多响应式设计模式和自适应布局的示例和想法。