我想做什么?
Activity 以一个 ImageView
占据屏幕上部 9/10,一个 ListView
占据屏幕底部 1/10 开始:
随着更多项目添加到 ListView
,比例会发生变化,ListView
为每个项目获得 1/10 更多的屏幕,而 ImageView
分别缩小,比例高达 50:50(之后添加更多项目保持比例固定):
我已经知道的:
静态划分屏幕的最佳做法是使用 LinearLayout
属性 android:weightSum
(和 View
的 android:layout_weight
).使用 AbsListView.LayoutParams
并结合在 ArrayAdapter
中的某处注册回调,应该也可以动态地实现它。然而,它填充就像滥用静态特征(重量)。此外,我更喜欢连续进行比率之间的转换(使用属性动画)。
问题:
我是否应该更喜欢使用
getWindowManager() .getDefaultDisplay().getHieght();
一次,然后根据需要动态计算比率?关于比率更新回调,除了
ArrayAdapter.registerDataSetObserver()
还有其他选择吗?
最佳答案
如果您想始终保持 10% 和 90% 的比率,请使用权重 1 和权重 9。 否则最好写xml代码来检查
关于安卓动态分屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29691757/