安卓动态分屏

标签 android android-layout android-layout-weight

我想做什么?

Activity 以一个 ImageView 占据屏幕上部 9/10,一个 ListView 占据屏幕底部 1/10 开始: enter image description here

随着更多项目添加到 ListView,比例会发生变化,ListView 为每个项目获得 1/10 更多的屏幕,而 ImageView 分别缩小,比例高达 50:50(之后添加更多项目保持比例固定): enter image description here

我已经知道的: 静态划分屏幕的最佳做法是使用 LinearLayout 属性 android:weightSum(和 Viewandroid:layout_weight).使用 AbsListView.LayoutParams 并结合在 ArrayAdapter 中的某处注册回调,应该也可以动态地实现它。然而,它填充就像滥用静态特征(重量)。此外,我更喜欢连续进行比率之间的转换(使用属性动画)。

问题:

  1. 我是否应该更喜欢使用 getWindowManager() .getDefaultDisplay().getHieght(); 一次,然后根据需要动态计算比率?

  2. 关于比率更新回调,除了ArrayAdapter.registerDataSetObserver()还有其他选择吗?

最佳答案

如果您想始终保持 10% 和 90% 的比率,请使用权重 1 和权重 9。 否则最好写xml代码来检查

关于安卓动态分屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29691757/

相关文章:

java - 我应该从layout_weight转向dip吗?

android - LinearLayout 权重未填充父级

Android如何在一个 Activity 中一个接一个地显示2个 ListView

android - 如果我在键盘弹出时设置 linearlayout 权重,它会调整其大陆的大小

java - 对 codenameone 的操作,构建错误(第 2 部分)

android - 工作管理器 : How to set-up different WorkManager Configurations in same App

android - 为什么我的 SVG 无法在 Vector Asset Studio 中加载

Android:从某个联系人获取通话记录历史记录

java - 平板电脑上的 ListView

java - 如何在屏幕底部的选项卡布局中打开新 Activity android