我希望在屏幕方向更改时在onConfigurationChange
重新排列我的观看次数。活动重启和观看娱乐太消耗;所以我必须保持观点。
我想改变一个LinearLayout的方向。如果方向已更改,我想交换所有子元素的宽度和高度值。 (就我而言,它们可以是0dp
,wrap_content
和match_parent
。)
当然,我可以保持旧的方向,并迭代孩子交换他们的宽度和高度。但这项任务看起来很重要,对我来说并不是唯一这样有更简单的方法吗?也许它已经在某处实现了?
答案 0 :(得分:2)
它已实施,但仅在活动重启时启用。
一种不涉及迭代的方法是使用横向布局重新创建View,这实际上是Android系统的功能。但好处是您不必重新创建其余的活动。缺点是您必须取消绑定已应用于视图的所有侦听器(onClickListener,onItemClickListener等)。不这样做会造成内存泄漏。
但是,有一种简单的方法可以做到这一点。处理您的布局是一个仅控制视图的片段样式。所有点击和用户交互都由此片段处理,该片段将操作发送回活动。调用onConfigurationChange
后,只需从FragmentManager
删除此片段,然后添加新的Fragment
。