我最近注意到Android中有大多数View类型的AppCompat版本,例如ListView
/ ListViewCompat
,Button
/ AppCompatButton
等。
对于这些更简单的视图(不包括例如SwitchCompat),它们与Android Framework版本有什么区别?我还没有找到关于此事的任何文件...
我很想知道选择任何一个版本的后果,以及选择其中一个版本是否有任何优势。
具体做法是:
ListView
和ListViewCompat
Button
/ AppCompatButton
ImageView
/ AppCompatImageView
EditText
/ AppCompatEditText
TextView
/ AppCompatTextView
我从普通版改为AppCompat版,期望从主题中使用颜色并在Lollipop和pre-lollipop上看起来相同,但它对某些视图(例如ListView)产生相反的效果
答案 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类。
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?