我想在我的应用中添加一种状态栏。 状态栏应指示外部设备的状态。 如果设备未连接,则应该只有一些文本,但如果已连接,则应该有关于设备的一些信息。此栏的背景颜色也应该改变。
我的想法是,只是创建两个布局来切换,而不是改变每个项目的属性和可见性。
这是首选方式吗?如何在这两者之间做出最佳切换?
答案 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)
更改属性是首选方式。对于每个条件,我们都不应创建不同的布局,然后重新启动活动以合并该布局。