在不同的布局之间切换

时间:2017-06-27 16:08:13

标签: android

我想在我的应用中添加一种状态栏。 状态栏应指示外部设备的状态。 如果设备未连接,则应该只有一些文本,但如果已连接,则应该有关于设备的一些信息。此栏的背景颜色也应该改变。

我的想法是,只是创建两个布局来切换,而不是改变每个项目的属性和可见性。

这是首选方式吗?如何在这两者之间做出最佳切换?

3 个答案:

答案 0 :(得分:1)

您可以尝试使用ViewAnimator

https://developer.android.com/reference/android/widget/ViewAnimator.html

您可以使用以下方法定义更多布局并轻松切换:

viewAnimator.showNext(); 
viewAnimator.showPrevious(); 
viewAnimator.setDisplayedChild(...);

答案 1 :(得分:1)

最好的方法是定义两个单独的布局文件,因为两种情况的UI完全不同。并将像FrameLayout这样的ViewGroup作为容器,当连接状态发生变化时,将相应的布局膨胀并将其添加到容器中(在添加之前从容器中删除所有视图)。

为了进一步优化,如果连接状态经常发生变化,则可以在本地存储膨胀视图,并在膨胀视图之前检查空值。如果您之前已经充气,请不要膨胀,只是在这种情况下更新视图的内容。

答案 2 :(得分:0)

更改属性是首选方式。对于每个条件,我们都不应创建不同的布局,然后重新启动活动以合并该布局。