安卓工作室 当无法使用包装内容时,如何为不同的屏幕尺寸配置多个布局的应用程序?



我在为多个屏幕配置应用程序时遇到了困难。我读了很多关于它的信息,但到目前为止,我还没有成功地做到这一点。首先,我必须为我的按钮使用硬编码的尺寸,因为它们有很多,准确地说是53,而且它们必须是方形的,40x40dp,并精确地放在布局上。所以我不能使用wrap_content、fill_rent等,因为这样我就无法在布局中放置所有按钮。

我用这些屏幕配置创建了5种不同的布局"activity_main.xml":normal_mdpi、large-hdpi、xlarge-xhdpi、xxhdpi、xxxhdpi。到目前为止还不错,但如果我不将特定的手机配置应用于任何布局(使用"预览设备"下拉菜单(,那么它们就无法显示在屏幕上。但布局只适合这些手机配置,不适合配置相似但略有不同的手机。我做错了什么?我需要多少布局?我需要为每部手机创建一个布局吗?

不能使用固定大小。我知道你想使用固定尺寸,但你做不到。为每个密度创建多个布局是一个常见的错误。每个活动通常只有一个xml布局资源文件,但在制作真正高级的布局时也有例外(将使用片段(。

如何修复布局

作为布局资源文件中的基本布局,我建议您使用ConstraintLayout,因为它有很大的潜力,可以轻松地进行复杂的布局。编辑每个视图以使其使用wrap_contentmatch_constraint(match_constraint基本上是match_parent,但用于ConstraintLayouts(需要一些时间,但这是必要的。如果您使用wrap_contentmatch_constraint(match_parent用于LinearLayout等其他基本布局(,Android将负责调整任何密度/屏幕大小的视图大小。

请记住,永远不要使用固定大小的视图。

最新更新