小工具知识网

当前位置: 首页 > 行业知识 > 全新Android-Material-组件你在用了吗?

行业知识

全新Android-Material-组件你在用了吗?

2026-11-10 02:12:52 来源:互联网转载

二、Android Material组件1.2.0更新说明

如果您尚未开始使用 MDC 的 1.2.0 版本,现在可以更新了。

  • MDC 1.1.0

    https://medium.com/google-design/material-design-components-for-android-1-1-0-are-now-available-45e1d576037c

    三、Material 动效

    Material 动效系统包含一套 (四种) 转场动画模式。它们可以帮助用户理解应用并在其中导航浏览,还能增强组件之间或全屏视图之间的联系。这些转场模式包括:

    • 容器变换

      https://material.io/design/motion/the-motion-system.html#container-transform

    • 共享轴

      https://material.io/design/motion/the-motion-system.html#shared-axis

    • 淡入淡出

      https://material.io/design/motion/the-motion-system.html#fade-through

    • 弹出

      https://material.io/design/motion/the-motion-system.html#fade

      这些转场模式可用于 Fragment (包括 Jetpack Navigation) 、Activity 和 View 之间的过渡。

      • Jetpack Navigation

        https://developer.android.google.cn/guide/navigation

        Fragment 之间的容器变换 (使用 Jetpack Navigation)

        // FragmentB.kt

        override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)

        …

        sharedElementEnterTransition = MaterialContainerTransform()

        }

        // FragmentA.kt

        fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)

        …

        exitTransition = Hold()

        }

        …

        val directions = FragmentADirections.actionFragmentAToFragmentB()

        val extras = FragmentNavigatorExtras(startView to “end_container”)

        findNavController().navigate(directions, extras)

        Fragment 之间的共享 Z 轴

        // FragmentA.kt

        override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)

        …

        reenterTransition = MaterialSharedAxis(

        MaterialSharedAxis.Z, /* forward = / false)

        exitTransition = MaterialSharedAxis(

        MaterialSharedAxis.Z, / forward = / true)

        }

        // FragmentB.kt

        override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)

        …

        enterTransition = MaterialSharedAxis(

        MaterialSharedAxis.Z, / forward = / true)

        returnTransition = MaterialSharedAxis(

        MaterialSharedAxis.Z, / forward = */ false)

        }

        Fragment 之间的淡入淡出

        // FragmentA.kt

        override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)

        …

        exitTransition = MaterialFadeThrough()

        }

        // FragmentB.kt

        override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)

        …

        enterTransition = MaterialFadeThrough()

        }

        弹出目标视图 (使用 TransitionManager)

        val fade = MaterialFade()

        TransitionManager.beginDelayedTransition(container, fade)

        view.visibility = View.VISIBLE // Use View.GONE to fade out

        详细了解如何在 Android 上实现动效:

        https://material.io/develop/android/theming/motion

        四、Slider

        利用 Slider (滑动条),用户可以在一定的数值范围内进行选择,非常适合用于调整音量、亮度等设置数值或在应用图像滤镜时调整其参数。

        • Sliders

          https://material.io/components/sliders

          在 MDC 1.2.0 中,您可以通过 Slider 和 RangeSlider widget 在 Android 应用中使用滑动条。这些 widget 类似于 SeekBar,但包含更多功能并支持Material 主题。

          …

          ... 20.0 70.0

          // In code

          slider.addOnChangeListener { slider, value, fromUser ->

          // Respond to change in slider’s value

          }

          …

          val values = rangeSlider.values

          在这里详细了解如何实现滑动条。

          • Slider

            https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/slider/Slider.java

          • RangeSlider

            https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/slider/RangeSlider.java

          • Material 主题

            https://material.io/design/material-theming/overview.html

          • 实现滑动条

            https://material.io/develop/android/components/slider

            五、ShapeableImageView

            全新的 ShapeableImageView widget 是 AppCompatImageView 的扩展,用于处理形状主题 (shape theming)。常见用例是对矩形源图像进行圆角遮罩。不过,该 widget 也支持各种圆角尺寸、切角以及不同的描边宽度和颜色。

            • ShapeableImageView

              https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/imageview/ShapeableImageView.java

              六、MaterialColors

              MaterialColors 实用程序类也已正式加入 MDC 1.2.0。该类提供了各种有用的静态方法,可供您在应用中以编程方式处理颜色时使用。

              // Resolve color from theme attr

              val primaryColor = MaterialColors.getColor(

              view, R.attr.colorPrimary)

              // Layer background color with overlay color + alpha

              val overlayedColor = MaterialColors.layer(

              view, R.attr.colorSurface, R.attr.colorPrimary, 0.38f)

              • MaterialColors

                https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/color/MaterialColors.java

                自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

                深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

                因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

                既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

                由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

                如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

                最后

                文章所有资料全部已经打包整理好,另外小编手头上整理了大量Android架构师全套学习资料,Android核心高级技术PDF文档+全套高级学习资料+视频+2021 BAT 大厂面试真题解析

                资料展示:

                《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

                转存中…(img-OxRC4cEy-1712375570753)]

                [外链图片转存中…(img-EBvmC7Rg-1712375570753)]

                [外链图片转存中…(img-8PckwPey-1712375570754)]

                [外链图片转存中…(img-4lLVO0FG-1712375570754)]

                《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

上一篇:宝塔面板怎么删除tls?

下一篇:Python:Flask版本对Python版本支持情况汇总