java - Android开发中的Button和Androidx.appcompat.widget.AppCompatButton有什么区别?
问题描述
我正在尝试在最新的 Android Studio 北极中创建一个注册页面。因此,我尝试使用 Button Class 自定义和设置按钮样式,但在使用 AppCompatButton 之前没有进行任何可观察到的更改,并且按钮的所有样式和自定义都已实现。我想详细说明这两个视图以及为什么我不能使用 Button Class 进行更改。谢谢。
这些是 AppCompatButton 和 Button 的代码
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/sign_up_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/button_border_signin"
android:elevation="0dp"
android:text="Sign Up"
android:textColor="#e0e0e0e0"
android:textStyle="bold" />
按钮
<Button
android:id="@+id/sign_up_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/button_border_signin"
android:elevation="0dp"
android:text="Sign Up"
android:textColor="#e0e0e0e0"
android:textStyle="bold" />
解决方案
可能的原因
您可能在后台可绘制文件中使用了一些与旧版本不兼容的功能。
Button 和 AppCompatButton 的区别
AppCompatButton 只是一个支持旧版本平台兼容功能的按钮,包括:
- 允许通过ViewCompat中的背景着色方法对其背景进行动态着色。
- 允许使用R.attr.backgroundTint和R.attr.backgroundTintMode设置背景色调。
- 允许使用R.attr.fontFamily设置字体系列
当您在布局中使用 Button 并且顶级活动/对话框由 appcompat 提供时,这将自动使用。您应该只需要在编写自定义视图时手动使用此类。
来源: AppCompatButton
推荐阅读
- android - 如何在日历数据类型中从现在开始一个月?
- mysql - 我如何遍历两个列表以查看变量是否相同?
- tsql - 使用 COUNT() 左连接
- javascript - 单击另一个跨度后如何从另一个跨度中删除此背景颜色
- c++ - 具有 QObject 继承的单例 - Qt
- sql - 用于在表中插入 ID 的 SQL 查询
- ios - iOS - CocoaPods 要求您的终端使用 UTF-8 编码 - 在最新的颤振升级之后
- android - 选择新微调器项时从数组中删除值
- android - 如何将文档字段数据从 firestore 数据库中的特定集合存储到 kotlin 中的字符串变量
- javascript - 我是否需要在使用 Node.js 创建后端服务和使用 ejs 视图引擎创建前端部分的项目中使用 Babel?