Android Framework widgets 和它们的 AppCompat 版本之间的区别



我最近注意到Android中大多数视图类型都有AppCompat版本,例如ListView/ListViewCompatButton/AppCompatButton等。

对于这些更简单的视图(不包括例如SwitchCompat),它们与Android Framework版本有什么区别?我没有找到任何关于此事的文档...

我有兴趣了解选择任一版本的后果,以及选择一个版本是否有任何优势。

具体说来:

  • ListViewListViewCompat之间的区别
  • Button/AppCompatButton的区别
  • ImageView/AppCompatImageView的区别
  • EditText/AppCompatEditText的区别
  • TextView/AppCompatTextView的区别

我从普通版本更改为 AppCompat 版本,期望从主题中使用颜色并在棒棒糖和棒棒糖之前看起来相同,但它对某些视图(例如 ListView)产生了相反的效果。

AppCompat 为旧版本的 API 提供一致的 UI 支持,回到 API v7。从文档

appcompat 中可用的色调感知小部件的完整列表

AppCompatAutoCompleteTextView
AppCompatButton
AppCompatCheckBox
AppCompatCheckedTextView
AppCompatEditText
AppCompatMultiAutoCompleteTextView
AppCompatRadioButton
AppCompatRatingBar
AppCompatSpinner
AppCompatTextView

ListViewCompat 是 ListView 的子类,与其他类相同

<小时 />

编辑:

为什么这两个类在框架或 Android 支持库如何工作中都可用?

如果您使用

AppCompatActivity,则当您在布局中使用 ImageView 时,将自动使用 AppCompatImageView

从 AppCompatImageView AppCompatEditText AppCompatButton

按钮

与应用兼容按钮

当您在布局中使用按钮时,将自动使用此功能 顶级活动/对话框由Appcompat提供。你 应该只需要在编写自定义视图时手动使用此类。

图像视图 vs 应用兼容图像视图

当您在布局中使用 ImageView 时,将自动使用此功能 顶级活动/对话框由Appcompat提供。你 应该只需要在编写自定义视图时手动使用此类。

编辑文本 vs 应用兼容编辑文本

当您在布局中使用 EditText 时,将自动使用此功能 顶级活动/对话框由Appcompat提供。你 应该只需要在编写自定义视图时手动使用此类。

并且相同的规则也适用于其他应用程序兼容视图

相关内容

最新更新