何时使用AppCompatView与普通的Android视图

使用它们有什么区别,何时使用它们?

AppCompatView的文档示例如下:

一个提示意识的EditText。 在布局中使用EditText时,将自动使用此选项。 编写自定义视图时,您只需手动使用此类

为什么AppCompatView只能用于自定义视图?

有一个类似的问题 ,但我正在寻找一个很好的解释为什么AppCompatView应该只用于自定义视图。

某些材料设计function(如材质主题和自定义活动过渡)仅适用于Android 5.0(API级别21)及更高版本。 但是,您可以设计应用程序,以便在支持材料设计的设备上运行时使用这些function,并且仍然与运行以前版本的Android的设备兼容。

Que->为什么AppCompatView只能用于自定义视图。

答案 – >简单来说,AppCompatView用于保持兼容性 。 如果您的应用使用Material主题与Theme.Material但不提供替代主题,则您的应用将无法在早于5.0的Android版本上运行。

如果您根据材料设计指南设计的布局不使用Android 5.0(API级别21)中引入的任何新XML属性,则它们将适用于以前版本的Android。 否则,您可以提供替代布局。 您还可以提供其他布局,以自定义应用在早期版本的Android上的外观。

使用AppCompat可以更轻松地实现向后兼容的材料设计Android应用程序,尤其是当您了解其样式和主题如何协同工作以动态调整用户界面时。

使用AppCompat,您应该花费更少的时间来摆弄资产和向后兼容性,并将更多时间用于实际构建应用程序。

目前,通过Android Studio创建的新项目默认包含此库。

注意:此库取决于v4支持库。

以下是一些参考链接

  1. 使用AppCompat轻松实现Android材料主题
  2. 迁移到AppCompat库
  3. 使用AppCompat v21获取Pre-Lollipop设备的材料设计

在布局中,您应该使用“普通”视图,因为支持库会自动注入兼容性代码。 只有在编写新的自定义视图时才需要支持库提供的类。 在这种情况下,您必须扩展AppCompat视图以获取新属性(例如tint)。