【发布时间】:2019-07-11 04:14:22
【问题描述】:
当我将应用程序的主题更改为 Material 主题(即 Theme.MaterialComponents.* 包中可用的主题之一)以使用 MaterialButton 组件时,我不再能够使用 Android SDK 的 Button当我在布局文件中简单地使用<Button> 标签时。当我单击 <Button> 标签时,Android Studio 会将我导航到 android.widget.Button 类。但是当我点击<com.google.android.material.button.MaterialButton> 标签时,Android Studio 会将我导航到com.google.android.material.button.MaterialButton 类。所以问题是我可以安全地使用<Button> 标签而不是<com.google.android.material.button.MaterialButton> 标签吗?
【问题讨论】:
-
“安全”是什么意思?当您使用
<Button>元素时,材质组件使用的LayoutInflater将创建MaterialButton对象,就像 AppCompatLayoutInflater将为您的<Button>创建一个AppCompatButton一样。那么,您对“安全”的定义是什么? -
我的意思是
<Button>标签的用法和另一个完全一样吗?官方文档中的示例和其他一些示例也明确使用<com.google.android.material.button.MaterialButton>标签而不是<Button>标签,尽管主题已经更新为 Material Components 使用的 Material 主题。 -
不会完全一样,因为Material Components(和AppCompat)支持额外的属性(例如,以
app为前缀)。 -
您可以将此评论作为答案发布,这样我就可以将其标记为问题的答案,以便其他人直接识别答案。
标签: android android-studio android-layout material-design androidx