在Android Studio的新版本中,我看不到styles.xml
,但在values目录中,有两个新的XML,theme.xml
,theme.xml(night)
.
它实际上取代了styles.xml
的工作还是如果不同,它们之间的区别是什么??
在resvalues
中使用XML属性实际上并不依赖于文件名,您可以在另一个文件(如style.xml)中定义任何<string>
。
您甚至可以更改style.xml
的名称为您想要的东西。
在最近的Android studio版本中,styles.xml
被themes.xml
取代,但后者为黑暗模式提供了一个夜间版本。
styles是一个属性集合,它定义了一个特定的ui看起来像什么ex: editText或textView同时,一个主题决定了你整个应用的外观(一个单一的主题可以有多种风格,这取决于你的设计),两个主题之间的区别是使你的应用适应白天模式和夜晚模式。因为现在在android操作系统中,你可以强制黑暗模式。
作为开发者,你需要让你的应用为此做好准备。
如何使用
给你在条目中标记的两个主题赋予不同的颜色(下图来自主题文件)
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.<Your app name>" <---- this is autogenrated this wil be the id to be used
parent="Theme.MaterialComponents.DayNight">
</style>
</resources>
使用在textview或按钮或布局文件只需:
<TextView
android:id="@+id/tv_StackOverflow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Theme.<Your app name>" /> <---insert your style name inside the theme.
现在,当用户在他们的手机上强行切换到开发者模式的黑暗模式时,你的应用程序将立即适应它并改变其UI的颜色。
更多信息可以在这里找到- https://developer.android.com/guide/topics/ui/look-and-feel/themes