【问题标题】:Difference between Android Framework widgets and their AppCompat versionAndroid 框架小部件与其 AppCompat 版本之间的区别
【发布时间】:2016-01-26 08:24:40
【问题描述】:

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

对于这些更简单的View(不包括SwitchCompat),它们与Android Framework版本有什么区别?我没有找到关于这个问题的任何文件......

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

具体来说:

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

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

【问题讨论】:

    标签: android android-appcompat


    【解决方案1】:

    AppCompat 为 API v7 的旧版本 API 提供一致的 UI 支持。 来自Documentation

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

    AppCompatAutoCompleteTextView
    AppCompatButton
    AppCompatCheckBox
    AppCompatCheckedTextView
    AppCompatEditText
    AppCompatMultiAutoCompleteTextView
    AppCompatRadioButton
    AppCompatRatingBar
    AppCompatSpinner
    AppCompatTextView
    

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


    编辑:

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

    【讨论】:

    【解决方案2】:

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

    来自AppCompatImageViewAppCompatEditTextAppCompatButton

    按钮与 AppCompatButton

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

    ImageView 与 AppCompatImageView

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

    EditText 与 AppCompatEditText

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 2010-11-16
      相关资源
      最近更新 更多