我正在研究游戏的控件,并且需要控制面板的一部分(下图中的灰色)动态更改,要么显示单个画布(左侧),要么显示5个按钮(右侧)。下排视图之间的边框应始终位于与上排按钮之间的边框完全相同的x位置,如图所示。同时,所有十二个上部按钮应按比例缩放并均匀分布。
我已经考虑了几种方法,但至今没有做任何我想做的事情:
对替代方法或如何使上述方法之一起作用的任何建议?如果有某种方法可以动画视图的变化,例如在画布左侧从按钮中滑动,那也很好。谢谢!
答案 0 :(得分:0)
有趣的是,几周前我已经这样做了。我所做的是利用View
对象的这个属性:"Visibility"
。这意味着在固定位置,我可以设置要显示的任何View
,而不是取决于任何类型的Layout
,它可以是Visibility.GONE
,Visibility.VISIBLE
或{ {1}}。
在我的应用中,我使用Visibility.INVISIBLE
设置右侧RelativeLayout
的相对位置。
试一试:)
答案 1 :(得分:0)
为了结束这个问题:我通过编写一个自定义布局类来解决问题,该布局类放置子视图并调整其大小,而不考虑子项的测量大小。实际上,这给了我带有布局权重的线性布局的行为,但是边界放置更具确定性。
ViewAnimator用于在Canvas和Buttons之间切换。