为什么不一直使用android:configChanges=

为什么不一直使用android:configChanges=

我在想为什么不用android:configChanges="keyboardHidden|orientation"在每一项(几乎每一项)活动中?

货物:

  • 不用担心你的活动被轮换了
  • 更快

不太好:

  • 如果您的布局取决于屏幕大小(例如,有两列左右的布局),则需要更改它们的布局。

坏:

  • 没有灵活的方式在不同的方向上有不同的布局
  • 当使用片段时不太好

但如果我们不使用不同的布局,为什么不呢?


慕婉清6462132
浏览 2061回答 3
3回答

慕森卡

在我的观点:如果布局是相同的景观和肖像模式-你可能会禁用其中之一在你的应用程序。我之所以这么说,是因为当我改变方向时,作为一个用户,我希望应用程序能给我带来一些好处。如果我拿手机的方式不重要,那我就不需要选择了。例如,您有一个ListView应用程序,单击ListItem时,您希望看到该项目的详细视图。在景观中,您可以将屏幕分成两部分,左边是ListView,右边是详细视图。在肖像中,您将在一个屏幕中获得列表,然后在选中ListItem时将屏幕更改为详细视图。在这种情况下,改变方向是有意义的,也有不同的布局。

红颜莎娜

我不明白为什么.。在我看来偶尔重新开始是可以的.。configChanges帮我处理大部分案件.。嗯,也许在某些类型的应用程序中,这可能是个问题,但这取决于应用程序的类型以及在应用程序重新启动时如何恢复状态.当我的应用程序重新启动时,用户被重新登录,最后一次活动由我的代码打开,用户jus失去了一些返回的步骤,但没什么大不了的。在另一些情况下,一些状态总是持久化的,而一些状态总是在重启时被恢复。当活动重新启动时,必须是应用程序没有被使用或者什么的.所以根本没问题.。例如,在游戏中,这可能是个问题,也可能是其他类型的应用程序中的问题,我不知道.我说,当您这样做时,应用程序在正常情况下工作正常。代码的可读性要高得多,而不需要大量的逻辑来保存和恢复,这样你就可以制造新的bug,并且必须一直维护它…当然,如果Android失去了功能并杀死了您的应用程序窗口,它就会失去上下文并重新启动,但这种情况只是在特殊情况下才会发生,而在较新的设备上,我相信这是越来越罕见的。所以杀了我,但我很成功地在应用程序中使用了这个.android:configChanges=“locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize”,但我知道,对于某些特殊类型的应用程序来说,这可能不是一个好方法,但大多数应用程序都可以接受这一点。
打开App,查看更多内容
随时随地看视频慕课网APP