何时使用AppCompatView与普通Android视图

时间:2016-01-04 23:53:45

标签: android android-appcompat

使用它们之间有什么区别,它们应该何时使用?

AppCompatView的文档示例如下:

  

一种淡淡的EditText。这将在您使用时自动使用   您的布局中的EditText。您只需要手动使用它   编写自定义视图时的类

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

有一个similar question,但我正在寻找一个很好的解释,为什么AppCompatView只能用于自定义视图。

2 个答案:

答案 0 :(得分:11)

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

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

答案 - >简单来说,AppCompatView用于maintaining compatibility。如果您的应用使用素材主题与Theme.Material一样,但未提供替代主题,那么您的应用将无法在早于5.0的Android版本上运行。

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

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

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

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

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

以下是几个参考链接

  1. Android Material Themes Made Easy With AppCompat
  2. Migrating to the AppCompat Library
  3. Getting Material Design for Pre-Lollipop Devices with AppCompat v21

答案 1 :(得分:8)

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