Android Framework小部件与其AppCompat版本之间的区别

时间:2016-01-26 08:24:41

标签: android android-appcompat

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

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

我很想知道选择任何一个版本的后果,以及选择其中一个版本是否有任何优势。

具体做法是:

  • ListViewListViewCompat
  • 之间的差异
  • Button / AppCompatButton
  • 之间的差异
  • ImageView / AppCompatImageView
  • 之间的差异
  • EditText / AppCompatEditText
  • 之间的差异
  • TextView / AppCompatTextView
  • 之间的差异

我从普通版改为AppCompat版,期望从主题中使用颜色并在Lollipop和pre-lollipop上看起来相同,但它对某些视图(例如ListView)产生相反的效果

2 个答案:

答案 0 :(得分:7)

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

来自AppCompatImageView AppCompatEditText AppCompatButton

按钮vs AppCompatButton

当您在布局中使用Button时,将自动使用它 顶级活动/对话框由appcompat提供。您 编写自定义视图时只需要手动使用此类。

ImageView与AppCompatImageView

在布局中使用ImageView时将自动使用 顶级活动/对话框由appcompat提供。您 编写自定义视图时只需要手动使用此类。

EditText与AppCompatEditText

在布局中使用EditText时将自动使用 顶级活动/对话框由appcompat提供。您 编写自定义视图时只需要手动使用此类。

相同的规则也适用于其他appcompat视图

答案 1 :(得分:5)

AppCompat支持旧版本的android OS,如AppCompat-v7支持从android 6.1.1到android 2.6.0

由于上述原因,他们已经在此支持库中创建了以下小部件的AppCompat类。

来自Documentation

appcompart

中提供的色彩感知小部件的完整列表
AppCompatAutoCompleteTextView
AppCompatButton
AppCompatCheckBox
AppCompatCheckedTextView
AppCompatEditText
AppCompatMultiAutoCompleteTextView
AppCompatRadioButton
AppCompatRatingBar
AppCompatSpinner
AppCompatTextView

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

编辑:

why both class available in framework or How Android Support Library work?