再不迁移到Material Design Components 就out啦 (3)

如上所述,先前支持库的风格已经变成了 MDC 的一部分。在大多数的情况下,我们都可以通过 Widget.MaterialComponents.* 来替换 Widget.Design.* 样式。并且还启用了新的属性,虽然可以不使用,但是我们建议还是采用新的 MDC 样式!

建议使用 MDC 组件来替换AppCompat 或者 MaterialButton (如果有的话)这些组件默认情况下使用更新后的材料设计指南。并且支持启用 Material Theming 和其他功能。

下面这几种情况应该考虑

在布局中写的控件如果有对应的 MDC 控件的话,直接使用 MDC 控件

任何的风格,默认风格和默认风格属性应该改变成 MDC 版本

在编程中或者自定义类的父级类使用的任何控件都应该为 MDC 版本。

完整 控件和样式映射表

MDC-Android widget (moved from Design Support Library) Design Support Library default style MDC-Android default style Default style attr
AppBarLayout   Widget.Design.AppBarLayout   Widget.MaterialComponents.AppBarLayout.*   appBarLayoutStyle  
BottomNavigationView   Widget.Design.BottomNavigationView   Widget.MaterialComponents.BottomNavigationView   bottomNavigationStyle  
BottomSheetBehavior   Widget.Design.BottomSheet.Modal   Widget.MaterialComponents.BottomSheet.*   bottomSheetStyle  
BottomSheetDialog BottomSheetDialogFragment   Theme.Design.Light.BottomSheetDialog   Theme.MaterialComponents.*.BottomSheetDialog ThemeOverlay.MaterialComponents.*.BottomSheetDialog   bottomSheetDialogTheme  
CollapsingToolbarLayout   Widget.Design.CollapsingToolbar   N/A   N/A  
FloatingActionButton   Widget.Design.FloatingActionButton   Widget.MaterialComponents.FloatingActionButton   floatingActionButtonStyle  
NavigationView   Widget.Design.NavigationView   Widget.MaterialComponents.NavigationView   navigationViewStyle  
Snackbar   Widget.Design.Snackbar   Widget.MaterialComponents.Snackbar   snackbarStyle  
TabLayout TabItem   Widget.Design.TabLayout   Widget.MaterialComponents.TabLayout   tabStyle  
TextInputLayout TextInputEditText   Widget.Design.TextInputLayout   Widget.MaterialComponents.TextInputLayout.*   textInputStyle  
AppCompat widget AppCompat default style AppCompat default style attr MDC-Android widget MDC-Android default style MDC-Android default style attr
AlertDialog.Builder   AlertDialog.AppCompat ThemeOverlay.AppCompat.Dialog.Alert   alertDialogStyle alertDialogTheme   MaterialAlertDialogBuilder   MaterialAlertDialog.MaterialComponents ThemeOverlay.MaterialComponents.MaterialAlertDialog   alertDialogStyle materialAlertDialogTheme  
AppCompatAutoCompleteTextView   Widget.AppCompat.AutoCompleteTextView   autoCompleteTextViewStyle   MaterialAutoCompleteTextView   Widget.MaterialComponents.AutoCompleteTextView.* ThemeOverlay.MaterialComponents.AutoCompleteTextView.*   autoCompleteTextViewStyle  
AppCompatButton   Widget.AppCompat.Button   buttonStyle   MaterialButton   Widget.MaterialComponents.Button   materialButtonStyle  
AppCompatCheckBox   Widget.AppCompat.CompoundButton.CheckBox   checkboxStyle   MaterialCheckbox   Widget.MaterialComponents.CompoundButton.CheckBox   checkboxStyle  
AppCompatImageView   N/A   N/A   ShapeableImageView   Widget.MaterialComponents.ShapeableImageView   N/A  
AppCompatRadioButton   Widget.AppCompat.CompoundButton.RadioButton   radioButtonStyle   MaterialRadioButton   Widget.MaterialComponents.CompoundButton.RadioButton   radioButtonStyle  
AppCompatTextView   Widget.AppCompat.TextView   N/A   MaterialTextView   Widget.MaterialComponents.TextView   N/A  
CardView   CardView   cardViewStyle   MaterialCardView   Widget.MaterialComponents.CardView   materialCardViewStyle  
PopupMenu   Widget.AppCompat.PopupMenu.*   popupMenuStyle   N/A   Widget.MaterialComponents.PopupMenu.*   popupMenuStyle  
SwitchCompat   Widget.AppCompat.CompoundButton.Switch   switchStyle   SwitchMaterial   Widget.MaterialComponents.CompoundButton.Switch   switchStyle  
Toolbar   Widget.AppCompat.Toolbar   toolbarStyle   MaterialToolbar   Widget.MaterialComponents.Toolbar   toolbarStyle  

最新的组件完整列表以及使用文档:https://material.io/develop/android/

示例更新

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypxxp.html