{"id":237,"date":"2024-10-10T11:50:55","date_gmt":"2024-10-10T03:50:55","guid":{"rendered":"https:\/\/newstrong.xyz\/?p=237"},"modified":"2024-10-10T11:50:55","modified_gmt":"2024-10-10T03:50:55","slug":"compose-%e5%8a%a8%e7%94%bb-%e4%b8%89-animatedvisibility-%e4%bb%8e%e5%85%a5%e9%97%a8%e5%88%b0%e6%b7%b1%e5%85%a5%ef%bc%8c%e5%ae%9e%e7%8e%b0%e7%bb%84%e4%bb%b6%e7%9a%84%e9%9a%90%e8%97%8f%e5%92%8c","status":"publish","type":"post","link":"https:\/\/newstrong.top\/index.php\/2024\/10\/10\/compose-%e5%8a%a8%e7%94%bb-%e4%b8%89-animatedvisibility-%e4%bb%8e%e5%85%a5%e9%97%a8%e5%88%b0%e6%b7%b1%e5%85%a5%ef%bc%8c%e5%ae%9e%e7%8e%b0%e7%bb%84%e4%bb%b6%e7%9a%84%e9%9a%90%e8%97%8f%e5%92%8c\/","title":{"rendered":"Compose \u52a8\u753b (\u4e09) : AnimatedVisibility \u4ece\u5165\u95e8\u5230\u6df1\u5165\uff0c\u5b9e\u73b0\u7ec4\u4ef6\u7684\u9690\u85cf\u548c\u663e\u793a"},"content":{"rendered":"<p><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"display: none;\">\n                        <path stroke-linecap=\"round\" d=\"M5,0 0,2.5 5,5z\" id=\"raphael-marker-block\" style=\"-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\"><\/path>\n                    <\/svg><\/p>\n<pre><code>                <h3><\/code><\/pre>\n<p><a id=\"1_AnimatedVisibility__0\"><\/a>1. AnimatedVisibility \u662f\u4ec0\u4e48<\/h3>\n<\/p>\n<p><code>AnimatedVisibility<\/code>\u662f<code>Android Compose<\/code>\u4e2d\u7684\u4e00\u4e2a\u9ad8\u7ea7\u522b\u52a8\u753b<code>API<\/code>\u3002<br \/> \u53ef\u4ee5\u5b9e\u73b0<code>Compose\u7ec4\u4ef6<\/code>\u7684\u663e\u793a\u548c\u9690\u85cf\uff0c\u5e76\u4e14\u53ef\u4ee5\u6307\u5b9a\u663e\u793a\/\u9690\u85cf\u65f6\u5019\u7684\u52a8\u753b\u6548\u679c\u3002(<code>EnterTransition\/ExitTransition<\/code>)<br \/> \u548c <a href=\"https:\/\/blog.csdn.net\/EthanCo\/article\/details\/128601647\">animateXxxAsState<\/a>\u3001<code>animateContentSize<\/code>\u3001<code>Crossfade<\/code>\u3001<code>AnimatedContent<\/code> \u8fd9\u51e0\u4e2aAPI\u4e00\u8d77\uff0c\u90fd\u662f<code>Compose<\/code>\u7684\u9ad8\u7ea7\u522b\u52a8\u753bAPI\uff0c\u662f\u6bd4\u8f83\u6613\u7528\u7684\u3002<\/p>\n<h3>\n<a id=\"2_AnimatedVisibility__5\"><\/a>2. AnimatedVisibility \u7684\u57fa\u7840\u4f7f\u7528<\/h3>\n<pre><code class=\"prism language-kotlin\"><span class=\"token annotation builtin\">@Composable<\/span>\n<span class=\"token keyword\">fun<\/span> <span class=\"token function\">AnimatedVisibilityPage<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\n    <span class=\"token function\">Column<\/span><span class=\"token punctuation\">(<\/span>horizontalAlignment <span class=\"token operator\">=<\/span> Alignment<span class=\"token punctuation\">.<\/span>CenterHorizontally<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\n        <span class=\"token keyword\">var<\/span> visible <span class=\"token keyword\">by<\/span> remember <span class=\"token punctuation\">{<\/span>\n            <span class=\"token function\">mutableStateOf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token boolean\">true<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token function\">AnimatedVisibility<\/span><span class=\"token punctuation\">(<\/span>visible <span class=\"token operator\">=<\/span> visible<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\n            <span class=\"token function\">MyImage<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token function\">Spacer<\/span><span class=\"token punctuation\">(<\/span>modifier <span class=\"token operator\">=<\/span> Modifier<span class=\"token punctuation\">.<\/span><span class=\"token function\">height<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">.<\/span>dp<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token function\">Button<\/span><span class=\"token punctuation\">(<\/span>onClick <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<\/span> visible <span class=\"token operator\">=<\/span> <span class=\"token operator\">!<\/span>visible <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\n            <span class=\"token function\">Text<\/span><span class=\"token punctuation\">(<\/span>text <span class=\"token operator\">=<\/span> <span class=\"token string-literal singleline\"><span class=\"token string\">\"\u663e\u793a\/\u9690\u85cf\"<\/span><\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token annotation builtin\">@Composable<\/span>\n<span class=\"token keyword\">private<\/span> <span class=\"token keyword\">fun<\/span> <span class=\"token function\">MyImage<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\n    <span class=\"token function\">Image<\/span><span class=\"token punctuation\">(<\/span>\n        painter <span class=\"token operator\">=<\/span> <span class=\"token function\">painterResource<\/span><span class=\"token punctuation\">(<\/span>id <span class=\"token operator\">=<\/span> R<span class=\"token punctuation\">.<\/span>mipmap<span class=\"token punctuation\">.<\/span>photot1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n        modifier <span class=\"token operator\">=<\/span> Modifier<span class=\"token punctuation\">.<\/span><span class=\"token function\">width<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">300<\/span><span class=\"token punctuation\">.<\/span>dp<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n        contentDescription <span class=\"token operator\">=<\/span> <span class=\"token keyword\">null<\/span>\n    <span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u770b\u4e0a\u53bb\u662f\u4e0d\u662f\u5f88\u7b80\u5355\uff0c\u53ea\u9700\u8981\u5728<code>Image<\/code>\u5916\u5c42\u5305\u4e0a<code>AnimatedVisibility<\/code>\u5c31\u53ef\u4ee5\u4e86\uff0c\u663e\u793a\u6548\u679c\u5982\u4e0b<br \/> <img decoding=\"async\" src=\"http:\/\/120.46.136.9\/wp-content\/uploads\/2024\/10\/frc-426fd398a617f34b1b98fc6e81befd64.gif\"><br \/> \u6211\u4eec\u70b9\u8fdb<code>AnimatedVisibility<\/code>\u7684\u6e90\u7801\uff0c\u53ef\u4ee5\u770b\u5230\u5982\u4e0b\u4ee3\u7801<\/p>\n<pre><code class=\"prism language-kotlin\"><span class=\"token annotation builtin\">@Composable<\/span>\n<span class=\"token keyword\">fun<\/span> ColumnScope<span class=\"token punctuation\">.<\/span><span class=\"token function\">AnimatedVisibility<\/span><span class=\"token punctuation\">(<\/span>\n    visible<span class=\"token operator\">:<\/span> Boolean<span class=\"token punctuation\">,<\/span>\n    modifier<span class=\"token operator\">:<\/span> Modifier <span class=\"token operator\">=<\/span> Modifier<span class=\"token punctuation\">,<\/span>\n    enter<span class=\"token operator\">:<\/span> EnterTransition <span class=\"token operator\">=<\/span> <span class=\"token function\">fadeIn<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">expandVertically<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n    exit<span class=\"token operator\">:<\/span> ExitTransition <span class=\"token operator\">=<\/span> <span class=\"token function\">fadeOut<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">shrinkVertically<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n    label<span class=\"token operator\">:<\/span> String <span class=\"token operator\">=<\/span> <span class=\"token string-literal singleline\"><span class=\"token string\">\"AnimatedVisibility\"<\/span><\/span><span class=\"token punctuation\">,<\/span>\n    content<span class=\"token operator\">:<\/span> <span class=\"token annotation builtin\">@Composable<\/span> AnimatedVisibilityScope<span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> Unit\n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<\/span>\n    <span class=\"token keyword\">val<\/span> transition <span class=\"token operator\">=<\/span> <span class=\"token function\">updateTransition<\/span><span class=\"token punctuation\">(<\/span>visible<span class=\"token punctuation\">,<\/span> label<span class=\"token punctuation\">)<\/span>\n    <span class=\"token function\">AnimatedEnterExitImpl<\/span><span class=\"token punctuation\">(<\/span>transition<span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">{<\/span> it <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> modifier<span class=\"token punctuation\">,<\/span> enter<span class=\"token punctuation\">,<\/span> exit<span class=\"token punctuation\">,<\/span> content<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u53ef\u4ee5\u53d1\u73b0\u5176\u5185\u90e8\u8c03\u7528\u4e86<code>updateTransition<\/code>\uff0c\u8be5\u51fd\u6570\u5185\u90e8\u4f1a\u8fd4\u56de<code>Transition<\/code>\u5bf9\u8c61\u3002<\/p>\n<pre><code class=\"prism language-kotlin\"><span class=\"token annotation builtin\">@Composable<\/span>\n<span class=\"token keyword\">fun<\/span> <span class=\"token operator\">&lt;<\/span>T<span class=\"token operator\">&gt;<\/span> <span class=\"token function\">updateTransition<\/span><span class=\"token punctuation\">(<\/span>\n    targetState<span class=\"token operator\">:<\/span> T<span class=\"token punctuation\">,<\/span>\n    label<span class=\"token operator\">:<\/span> String<span class=\"token operator\">?<\/span> <span class=\"token operator\">=<\/span> <span class=\"token keyword\">null<\/span>\n<span class=\"token punctuation\">)<\/span><span class=\"token operator\">:<\/span> Transition<span class=\"token operator\">&lt;<\/span>T<span class=\"token operator\">&gt;<\/span> <span class=\"token punctuation\">{<\/span>\n    <span class=\"token comment\">\/\/...\u7701\u7565...<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><code>Transition<\/code>\u53ef\u7ba1\u7406\u4e00\u4e2a\u6216\u591a\u4e2a\u52a8\u753b\u4f5c\u4e3a\u5176\u5b50\u9879\uff0c\u5e76\u5728\u591a\u4e2a\u72b6\u6001\u4e4b\u95f4\u540c\u65f6\u8fd0\u884c\u8fd9\u4e9b\u52a8\u753b\u3002<br \/> \u8fd9\u4e2a\u6211\u4eec\u540e\u7eed\u6587\u7ae0\u4f1a\u8bb2\u5230\uff0c\u73b0\u5728\u5148\u77e5\u9053\u6709\u8fd9\u6837\u4e00\u4e2a\u6982\u5ff5\u5c31\u597d\u3002<\/p>\n<h3>\n<a id=\"3__61\"><\/a>3. \u5165\u573a\u548c\u51fa\u573a\u52a8\u753b<\/h3>\n<p><code>enter<\/code>\u548c<code>exit<\/code>\uff0c\u7528\u6765\u914d\u7f6e<code>\u5165\u573a\/\u51fa\u573a<\/code>\u65f6\u5019\u7684\u52a8\u753b\u6548\u679c\u3002<\/p>\n<p>\u9ed8\u8ba4\u7684\u5165\u573a\u6548\u679c\u662f <code>fadeIn() + expandVertically()<\/code><br \/> \u9ed8\u8ba4\u7684\u51fa\u573a\u6548\u679c\u662f <code>fadeOut() + shrinkVertically()<\/code><\/p>\n<h4>\n<a id=\"1_EnterTransitionExitTransition_67\"><\/a>1. <code>EnterTransition<\/code>\u548c<code>ExitTransition<\/code>\u652f\u6301\u7684\u52a8\u753b<\/h4>\n<p><code>enter<\/code>\u7684\u53c2\u6570\u7c7b\u578b\u662f<code>EnterTransition<\/code>\uff0c\u652f\u6301\u8fd9\u4e9b\u52a8\u753b<\/p>\n<ul>\n<li>\u6de1\u5165 :<code>fade: fadeIn<\/code>\n<\/li>\n<li>\u7f29\u653e : <code>scale: scaleIn<\/code>\n<\/li>\n<li>\u6ed1\u52a8 : <code>slide: slideIn, slideInHorizontally, slideInVertically<\/code>\n<\/li>\n<li>\u5c55\u5f00 : <code>expand: expandIn, expandHorizontally, expandVertically<\/code>\n<\/li>\n<\/ul>\n<p><code>exit<\/code>\u7684\u53c2\u6570\u7c7b\u578b\u662f<code>EnterTransition<\/code>\uff0c\u652f\u6301\u8fd9\u4e9b\u52a8\u753b<\/p>\n<ul>\n<li>\u6de1\u51fa : <code>fade: fadeOut<\/code>\n<\/li>\n<li>\u7f29\u653e : <code>scale: scaleOut<\/code>\n<\/li>\n<li>\u6ed1\u52a8 : <code>slide: slideOut, slideOutHorizontally, slideOutVertically<\/code>\n<\/li>\n<li>\u6536\u7f29 : <code>shrink: shrinkOut, shrinkHorizontally, shrinkVertically<\/code>\n<\/li>\n<\/ul>\n<p>\u53ef\u4ee5\u770b\u5230<code>EnterTransition<\/code>\u548c<code>ExitTransition<\/code>\u652f\u6301\u7684\u52a8\u753b\u53ea\u6709<code>expand<\/code>\u548c<code>shrink<\/code>\u547d\u540d\u4e0a\u6709\u533a\u522b\uff0c<br \/> \u5176\u4ed6\u90fd\u662f\u5bf9\u5e94\u7684 <code>fadeIn<\/code> \u548c <code>fadeOut<\/code>\uff0c<code>scaleIn<\/code> \u548c <code>scaleOut<\/code>\uff0c<code>slideIn<\/code> \u548c <code>slideOut<\/code>\u3002<br \/> <code>expand<\/code>\u548c<code>shrink<\/code>\u547d\u540d\u4e0a\u505a\u533a\u5206\uff0c\u662f\u56e0\u4e3a<code>expand<\/code>\u5c31\u662f<code>\u5c55\u5f00<\/code>\u7684\u610f\u601d\uff0c\u800c<code>shrink<\/code>\u662f<code>\u6536\u7f29<\/code>\u7684\u610f\u601d\uff0c\u5b83\u4eec\u5176\u5b9e\u5c31\u662f\u76f8\u5bf9\u5e94\u7684\u3002<br \/> \u5177\u4f53<code>EnterTransition<\/code>\u548c<code>ExitTransition<\/code>\u7684\u52a8\u753b\u6548\u679c\uff0c\u53ef\u4ee5\u770b\u6211\u7684\u8fd9\u7bc7\u6587\u7ae0 : <a href=\"https:\/\/blog.csdn.net\/EthanCo\/article\/details\/129381503\">Compose AnimatedVisibility \u5404\u79cd\u5165\u573a\u548c\u51fa\u573a\u52a8\u753b\u6548\u679c<\/a><\/p>\n<h4>\n<a id=\"32_EnterTransitionExitTransition_85\"><\/a>3.2 <code>EnterTransition<\/code>\u548c<code>ExitTransition<\/code>\u7684\u6e90\u7801<\/h4>\n<p>\u518d\u6765\u770b\u4e0b\u6e90\u7801\uff0c\u5165\u573a\u52a8\u753b<code>EnterTransition<\/code>\u548c\u51fa\u573a\u52a8\u753b<code>ExitTransition<\/code>\u5185\u90e8\u90fd\u6709<code>TransitionData<\/code>\u53d8\u91cf<\/p>\n<pre><code class=\"prism language-kotlin\"><span class=\"token keyword\">sealed<\/span> <span class=\"token keyword\">class<\/span> EnterTransition <span class=\"token punctuation\">{<\/span>\n    <span class=\"token keyword\">internal<\/span> <span class=\"token keyword\">abstract<\/span> <span class=\"token keyword\">val<\/span> <span class=\"token keyword\">data<\/span><span class=\"token operator\">:<\/span> TransitionData\n    <span class=\"token comment\">\/\/...<\/span>\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">sealed<\/span> <span class=\"token keyword\">class<\/span> ExitTransition <span class=\"token punctuation\">{<\/span>\n    <span class=\"token keyword\">internal<\/span> <span class=\"token keyword\">abstract<\/span> <span class=\"token keyword\">val<\/span> <span class=\"token keyword\">data<\/span><span class=\"token operator\">:<\/span> TransitionData\n    <span class=\"token comment\">\/\/...<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><code>TransitionData<\/code>\u5373\u662f\u53ef\u914d\u7f6e\u7684\u52a8\u753b\u53c2\u6570\uff0c\u5206\u522b\u5bf9\u5e94<code>fade<\/code>\u3001<code>slide<\/code>\u3001<code>expand\/shrink<\/code> \u3001<code>scale<\/code><\/p>\n<pre><code class=\"prism language-kotlin\"><span class=\"token keyword\">internal<\/span> <span class=\"token keyword\">data<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token function\">TransitionData<\/span><span class=\"token punctuation\">(<\/span>\n    <span class=\"token keyword\">val<\/span> fade<span class=\"token operator\">:<\/span> Fade<span class=\"token operator\">?<\/span> <span class=\"token operator\">=<\/span> <span class=\"token keyword\">null<\/span><span class=\"token punctuation\">,<\/span>\n    <span class=\"token keyword\">val<\/span> slide<span class=\"token operator\">:<\/span> Slide<span class=\"token operator\">?<\/span> <span class=\"token operator\">=<\/span> <span class=\"token keyword\">null<\/span><span class=\"token punctuation\">,<\/span>\n    <span class=\"token keyword\">val<\/span> changeSize<span class=\"token operator\">:<\/span> ChangeSize<span class=\"token operator\">?<\/span> <span class=\"token operator\">=<\/span> <span class=\"token keyword\">null<\/span><span class=\"token punctuation\">,<\/span>\n    <span class=\"token keyword\">val<\/span> scale<span class=\"token operator\">:<\/span> Scale<span class=\"token operator\">?<\/span> <span class=\"token operator\">=<\/span> <span class=\"token keyword\">null<\/span>\n<span class=\"token punctuation\">)<\/span>\n<\/code><\/pre>\n<blockquote>\n<p>\u6211\u4eec\u53ef\u4ee5\u53d1\u73b0 EnterTransition \u548c ExitTransition \u662f sealed class\uff0c\u5bc6\u5c01\u7c7b<br \/> \u5176\u5b50\u7c7b\u53ef\u4ee5\u51fa\u73b0\u5728\u5b9a\u4e49 sealed class \u7684\u4e0d\u540c\u6587\u4ef6\u4e2d\uff0c\u4f46\u4e0d\u5141\u8bb8\u51fa\u73b0\u5728\u4e0e\u4e0d\u540c\u7684 module \u4e2d\uff0c\u4e14\u9700\u8981\u4fdd\u8bc1 package \u4e00\u81f4<br \/> \u8fd9\u6837\u65e2\u53ef\u4ee5\u907f\u514d sealed class \u6587\u4ef6\u8fc7\u4e8e\u5e9e\u5927\uff0c\u53c8\u53ef\u4ee5\u786e\u4fdd\u7b2c\u4e09\u65b9\u5e93\u65e0\u6cd5\u6269\u5c55\u4f60\u5b9a\u4e49\u7684 sealed class\uff0c\u8fbe\u5230\u9650\u5236\u7c7b\u7684\u6269\u5c55\u76ee\u7684<\/p>\n<\/blockquote>\n<h4>\n<a id=\"33__110\"><\/a>3.3 <code>+<\/code>\u53f7\u7684\u4f5c\u7528<\/h4>\n<p><code>AnimatedVisibility<\/code>\u6e90\u7801\u7684\u90e8\u5206\uff0c\u5165\u573a(<code>enter<\/code>)\u548c\u51fa\u573a(<code>exit<\/code>)\u7684\u914d\u7f6e\uff0c\u4f7f\u7528\u4e86<code>+<\/code>\uff0c\u8fd9\u4e2a\u52a0\u53f7\u662f\u7528\u6765\u505a\u4ec0\u4e48\u7684\u5462 ?<\/p>\n<p>\u9996\u5148\uff0c<code>+<\/code>\u53f7\u662f<code>Kotlin<\/code>\u7684\u4e00\u4e2a\u7279\u6027 : <a href=\"https:\/\/www.nhooo.com\/kotlin\/kotlin-operator-overloading.html\" rel=\"nofollow\">\u91cd\u8f7d\u8fd0\u7b97\u7b26<\/a><\/p>\n<p>\u6211\u4eec\u70b9\u51fb\u8fd9\u4e2a<code>+<\/code>\u53f7\uff0c\u5c31\u53ef\u4ee5\u8df3\u8f6c\u5230\u5b83\u7684\u6e90\u7801<\/p>\n<pre><code class=\"prism language-kotlin\"><span class=\"token annotation builtin\">@Stable<\/span>\n<span class=\"token keyword\">operator<\/span> <span class=\"token keyword\">fun<\/span> <span class=\"token function\">plus<\/span><span class=\"token punctuation\">(<\/span>enter<span class=\"token operator\">:<\/span> EnterTransition<span class=\"token punctuation\">)<\/span><span class=\"token operator\">:<\/span> EnterTransition <span class=\"token punctuation\">{<\/span>\n        <span class=\"token keyword\">return<\/span> <span class=\"token function\">EnterTransitionImpl<\/span><span class=\"token punctuation\">(<\/span>\n            <span class=\"token function\">TransitionData<\/span><span class=\"token punctuation\">(<\/span>\n                fade <span class=\"token operator\">=<\/span> <span class=\"token keyword\">data<\/span><span class=\"token punctuation\">.<\/span>fade <span class=\"token operator\">?:<\/span> enter<span class=\"token punctuation\">.<\/span>data<span class=\"token punctuation\">.<\/span>fade<span class=\"token punctuation\">,<\/span>\n                slide <span class=\"token operator\">=<\/span> <span class=\"token keyword\">data<\/span><span class=\"token punctuation\">.<\/span>slide <span class=\"token operator\">?:<\/span> enter<span class=\"token punctuation\">.<\/span>data<span class=\"token punctuation\">.<\/span>slide<span class=\"token punctuation\">,<\/span>\n                changeSize <span class=\"token operator\">=<\/span> <span class=\"token keyword\">data<\/span><span class=\"token punctuation\">.<\/span>changeSize <span class=\"token operator\">?:<\/span> enter<span class=\"token punctuation\">.<\/span>data<span class=\"token punctuation\">.<\/span>changeSize<span class=\"token punctuation\">,<\/span>\n                scale <span class=\"token operator\">=<\/span> <span class=\"token keyword\">data<\/span><span class=\"token punctuation\">.<\/span>scale <span class=\"token operator\">?:<\/span> enter<span class=\"token punctuation\">.<\/span>data<span class=\"token punctuation\">.<\/span>scale\n            <span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u5982\u679c<code>data<\/code>\u4e0d\u4e3a\u7a7a\uff0c\u5c31\u7528<code>data<\/code>\u7684\u503c\uff0c\u5426\u5219\u7528<code>enter\/exit<\/code>\u7684\u3002<br \/> \u8fd9\u91cc\u7684<code>data<\/code>\u5c31\u662f<code>EnterTransition<\/code>\u548c<code>ExitTransition<\/code>\u4e2d\u7684\u90a3\u4e2a\u53d8\u91cf<code>internal abstract val data: TransitionData<\/code>(\u89c1 3.1 <code>EnterTransition<\/code>\u548c<code>ExitTransition<\/code>\u652f\u6301\u7684\u52a8\u753b\u90e8\u5206)<\/p>\n<p>\u6240\u4ee5<code>fadeIn() + expandVertically()<\/code>\uff0c<code>fadeIn()<\/code>\u4f1a\u8d4b\u503c\u7ed9<code>TransitionData<\/code>\u7684<code>fade<\/code>\uff0c<code>expandVertically<\/code>\u4f1a\u8d4b\u503c\u7ed9<code>changeSize <\/code><\/p>\n<p>\u5373 : <strong>\u5408\u5e76\u5404\u4e2a\u52a8\u753b\u7684\u6548\u679c<\/strong><\/p>\n<h5>\n<a id=\"331__136\"><\/a>3.3.1 \u4e24\u4e2a\u76f8\u540c\u7684\u52a8\u753b\u4f1a\u6709\u4ec0\u4e48\u6548\u679c<\/h5>\n<p>\u5982\u679c\u662f\u4e24\u4e2a\u76f8\u540c\u7684\u52a8\u753b\uff0c\u6bd4\u5982<code>fadeIn(initialAlpha = 0.3f) + fadeIn(initialAlpha = 0.5f)<\/code><br \/> \u6839\u636e\u6e90\u7801\u4e2d\u7684\u8fd9\u4e2a\u89c4\u5219 <code>\u5982\u679cdata\u4e0d\u4e3a\u7a7a\uff0c\u5c31\u7528data\u7684\u503c\uff0c\u5426\u5219\u7528enter\/exit\u7684\u3002<\/code>\u53ef\u77e5 :<br \/> \u4e24\u4e2a<code>fade<\/code>\uff0c\u4f1a\u91cd\u53e0\u4e86\uff0c\u5bfc\u81f4\u540e\u9762\u90a3\u90e8\u5206\u4e0d\u4f1a\u751f\u6548\uff0c\u7b49\u540c\u4e8e<code>fadeIn(initialAlpha = 0.3f)<\/code>\uff0c<code>+<\/code>\u53f7\u5de6\u8fb9\u4f18\u5148\u7ea7\u9ad8<\/p>\n<h4>\n<a id=\"34__142\"><\/a>3.4 \u591a\u79cd\u52a8\u753b\u6548\u679c\u7ed3\u5408<\/h4>\n<p>\u6211\u4eec\u6765\u5c1d\u8bd5\u4e0b\u591a\u79cd\u52a8\u753b\u6548\u679c\uff0c\u4f7f\u7528<code>+<\/code>\u53f7\u5408\u5e76\u4e4b\u540e\u7684\u6548\u679c<\/p>\n<pre><code class=\"prism language-kotlin\"><span class=\"token keyword\">val<\/span> density <span class=\"token operator\">=<\/span> LocalDensity<span class=\"token punctuation\">.<\/span>current\n<span class=\"token function\">AnimatedVisibility<\/span><span class=\"token punctuation\">(<\/span>visible <span class=\"token operator\">=<\/span> visible<span class=\"token punctuation\">,<\/span>\n    enter <span class=\"token operator\">=<\/span> slideInVertically <span class=\"token punctuation\">{<\/span>\n        <span class=\"token comment\">\/\/\u4ece\u9876\u90e8-200dp\u7684\u4f4d\u7f6e\u5f00\u59cb\u6ed1\u5165<\/span>\n        <span class=\"token function\">with<\/span><span class=\"token punctuation\">(<\/span>density<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token operator\">-<\/span><span class=\"token number\">200<\/span><span class=\"token punctuation\">.<\/span>dp<span class=\"token punctuation\">.<\/span><span class=\"token function\">roundToPx<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">expandHorizontally<\/span><span class=\"token punctuation\">(<\/span>\n        <span class=\"token comment\">\/\/\u5c55\u5f00\u4f4d\u7f6e<\/span>\n        expandFrom <span class=\"token operator\">=<\/span> Alignment<span class=\"token punctuation\">.<\/span>End\n    <span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">fadeIn<\/span><span class=\"token punctuation\">(<\/span>\n        <span class=\"token comment\">\/\/\u4ece\u521d\u59cb\u900f\u660e\u5ea60.3f\u5f00\u59cb\u6de1\u5165<\/span>\n        initialAlpha <span class=\"token operator\">=<\/span> <span class=\"token number\">0.3f<\/span>\n    <span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n    exit <span class=\"token operator\">=<\/span> <span class=\"token function\">slideOutHorizontally<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">shrinkHorizontally<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">fadeOut<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\n    <span class=\"token function\">MyImage<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u6548\u679c\u5982\u4e0b\u6240\u793a<br \/> <img decoding=\"async\" src=\"http:\/\/120.46.136.9\/wp-content\/uploads\/2024\/10\/frc-fb494eb8c135ad41405d297e7965a453.gif\"><\/p>\n<h3>\n<a id=\"4__166\"><\/a>4. \u4e0d\u540c\u7684\u4f5c\u7528\u57df<\/h3>\n<h4>\n<a id=\"41_AnimatedVisibility_167\"><\/a>4.1 AnimatedVisibility\u7684\u4f5c\u7528\u57df<\/h4>\n<p><code>AnimatedVisibility<\/code>\u6709\u597d\u51e0\u79cd\u4f5c\u7528\u57df\uff0c\u533a\u522b\u5728\u4e8e\u5728\u8fd9\u51e0\u79cd\u5e03\u5c40\u4e2d\uff0c\u9ed8\u8ba4\u7684<code>\u5165\u573a\u52a8\u753b<\/code>\u548c<code>\u51fa\u573a\u52a8\u753b<\/code>\u662f\u4e0d\u540c\u7684<\/p>\n<p><code>Column<\/code>\u9ed8\u8ba4\u7684\u51fa\u5165\u573a\u52a8\u753b\u5177\u6709<code>\u5782\u76f4\u5c55\u5f00<\/code>\uff0c\u800c<code>Row<\/code>\u7684\u51fa\u5165\u573a\u52a8\u753b\u5177\u6709<code>\u6a2a\u5411\u5c55\u5f00<\/code>\uff0c<code>Transition<\/code>\u548c<code>\u65e0\u524d\u7f00<\/code>\u7684\u51fa\u5165\u573a\u52a8\u753b\u662f<code>\u5c55\u5f00\/\u6536\u7f29<\/code>\u3002<\/p>\n<p>Column<\/p>\n<pre><code class=\"prism language-kotlin\"><span class=\"token keyword\">fun<\/span> ColumnScope<span class=\"token punctuation\">.<\/span><span class=\"token function\">AnimatedVisibility<\/span><span class=\"token punctuation\">(<\/span>\n    visible<span class=\"token operator\">:<\/span> Boolean<span class=\"token punctuation\">,<\/span>\n    modifier<span class=\"token operator\">:<\/span> Modifier <span class=\"token operator\">=<\/span> Modifier<span class=\"token punctuation\">,<\/span>\n    enter<span class=\"token operator\">:<\/span> EnterTransition <span class=\"token operator\">=<\/span> <span class=\"token function\">fadeIn<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">expandVertically<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n    exit<span class=\"token operator\">:<\/span> ExitTransition <span class=\"token operator\">=<\/span> <span class=\"token function\">fadeOut<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">shrinkVertically<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n    label<span class=\"token operator\">:<\/span> String <span class=\"token operator\">=<\/span> <span class=\"token string-literal singleline\"><span class=\"token string\">\"AnimatedVisibility\"<\/span><\/span><span class=\"token punctuation\">,<\/span>\n    content<span class=\"token operator\">:<\/span> <span class=\"token annotation builtin\">@Composable<\/span> AnimatedVisibilityScope<span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> Unit\n<span class=\"token punctuation\">)<\/span>\n<\/code><\/pre>\n<p>Row<\/p>\n<pre><code class=\"prism language-kotlin\"><span class=\"token keyword\">fun<\/span> RowScope<span class=\"token punctuation\">.<\/span><span class=\"token function\">AnimatedVisibility<\/span><span class=\"token punctuation\">(<\/span>\n    visible<span class=\"token operator\">:<\/span> Boolean<span class=\"token punctuation\">,<\/span>\n    modifier<span class=\"token operator\">:<\/span> Modifier <span class=\"token operator\">=<\/span> Modifier<span class=\"token punctuation\">,<\/span>\n    enter<span class=\"token operator\">:<\/span> EnterTransition <span class=\"token operator\">=<\/span> <span class=\"token function\">fadeIn<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">expandHorizontally<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n    exit<span class=\"token operator\">:<\/span> ExitTransition <span class=\"token operator\">=<\/span> <span class=\"token function\">fadeOut<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">shrinkHorizontally<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n    label<span class=\"token operator\">:<\/span> String <span class=\"token operator\">=<\/span> <span class=\"token string-literal singleline\"><span class=\"token string\">\"AnimatedVisibility\"<\/span><\/span><span class=\"token punctuation\">,<\/span>\n    content<span class=\"token operator\">:<\/span> <span class=\"token annotation builtin\">@Composable<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> AnimatedVisibilityScope<span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> Unit\n<span class=\"token punctuation\">)<\/span>\n<\/code><\/pre>\n<p>Transition<\/p>\n<pre><code class=\"prism language-kotlin\"><span class=\"token annotation builtin\">@ExperimentalAnimationApi<\/span> <span class=\"token comment\">\/\/\u5b9e\u9a8c\u7684\u52a8\u753bAPI<\/span>\n<span class=\"token annotation builtin\">@Composable<\/span>\n<span class=\"token keyword\">fun<\/span> <span class=\"token operator\">&lt;<\/span>T<span class=\"token operator\">&gt;<\/span> Transition<span class=\"token operator\">&lt;<\/span>T<span class=\"token operator\">&gt;<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">AnimatedVisibility<\/span><span class=\"token punctuation\">(<\/span>\n    visible<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">(<\/span>T<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> Boolean<span class=\"token punctuation\">,<\/span>\n    modifier<span class=\"token operator\">:<\/span> Modifier <span class=\"token operator\">=<\/span> Modifier<span class=\"token punctuation\">,<\/span>\n    enter<span class=\"token operator\">:<\/span> EnterTransition <span class=\"token operator\">=<\/span> <span class=\"token function\">fadeIn<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">expandIn<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n    exit<span class=\"token operator\">:<\/span> ExitTransition <span class=\"token operator\">=<\/span> <span class=\"token function\">shrinkOut<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">fadeOut<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n    content<span class=\"token operator\">:<\/span> <span class=\"token annotation builtin\">@Composable<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> AnimatedVisibilityScope<span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> Unit\n<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">=<\/span> <span class=\"token function\">AnimatedEnterExitImpl<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">,<\/span> visible<span class=\"token punctuation\">,<\/span> modifier<span class=\"token punctuation\">,<\/span> enter<span class=\"token punctuation\">,<\/span> exit<span class=\"token punctuation\">,<\/span> content<span class=\"token punctuation\">)<\/span>\n<\/code><\/pre>\n<p>\u65e0\u524d\u7f00<\/p>\n<pre><code class=\"prism language-kotlin\"><span class=\"token keyword\">fun<\/span> <span class=\"token function\">AnimatedVisibility<\/span><span class=\"token punctuation\">(<\/span>\n    visible<span class=\"token operator\">:<\/span> Boolean<span class=\"token punctuation\">,<\/span>\n    modifier<span class=\"token operator\">:<\/span> Modifier <span class=\"token operator\">=<\/span> Modifier<span class=\"token punctuation\">,<\/span>\n    enter<span class=\"token operator\">:<\/span> EnterTransition <span class=\"token operator\">=<\/span> <span class=\"token function\">fadeIn<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">expandIn<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n    exit<span class=\"token operator\">:<\/span> ExitTransition <span class=\"token operator\">=<\/span> <span class=\"token function\">shrinkOut<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token function\">fadeOut<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n    label<span class=\"token operator\">:<\/span> String <span class=\"token operator\">=<\/span> <span class=\"token string-literal singleline\"><span class=\"token string\">\"AnimatedVisibility\"<\/span><\/span><span class=\"token punctuation\">,<\/span>\n    content<span class=\"token operator\">:<\/span> <span class=\"token annotation builtin\">@Composable<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> AnimatedVisibilityScope<span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> Unit\n<span class=\"token punctuation\">)<\/span>\n<\/code><\/pre>\n<h4>\n<a id=\"42_AnimatedVisibility_217\"><\/a>4.2 \u4f7f\u7528\u4e0d\u4e86<code>AnimatedVisibility<\/code><br \/>\n<\/h4>\n<p>\u5982\u679c\u6211\u4eec\u5728<code>Column<\/code>\u91cc\u9762\u6709\u4e2a<code>Box<\/code>\uff0c<code>Box<\/code>\u91cc\u9762\u53c8\u6709<code>AnimatedVisibility<\/code>\uff0c\u4f1a\u53d1\u73b0<code>AnimatedVisibility<\/code>\u4f1a\u62a5\u9519<br \/> <img decoding=\"async\" src=\"http:\/\/120.46.136.9\/wp-content\/uploads\/2024\/10\/frc-fae0aa1604b3bbd809222e482e8bf0c5.png\"><\/p>\n<p>\u6211\u4eec\u628a\u9f20\u6807\u79fb\u5230\u8fd9\u4e2a\u62a5\u7ea2\u7684\u5730\u65b9\uff0c\u53ef\u4ee5\u770b\u5230\u5982\u4e0b\u7684\u63d0\u793a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/120.46.136.9\/wp-content\/uploads\/2024\/10\/frc-c12484081940da22696063809d9cb5cc.png\"><br \/> \u8fd9\u8fb9\u63d0\u793a<\/p>\n<pre><code>'fun ColumnScope.AnimatedVisibility(visible: Boolean, modifier: Modifier = ..., enter: EnterTransition = ..., exit: ExitTransition = ..., label: String = ..., content: AnimatedVisibilityScope.() -&gt; Unit): Unit' can't be called in this context by implicit receiver. Use the explicit one if necessary\n<\/code><\/pre>\n<p>\u6ce8\u610f\u6700\u540e\u4e00\u53e5<br \/> \u4e5f\u5c31\u662f\u8bf4\uff0c\u4e0d\u80fd\u4f7f\u7528\u9690\u5f0f\u8c03\u7528\uff0c\u800c\u5fc5\u987b\u5f97\u7528\u663e\u5f0f\u7684\u3002\u56e0\u4e3a<code>AnimatedVisibility<\/code>\u6709\u597d\u51e0\u79cd\u4f5c\u7528\u57df\uff0c<code>ColumnScope<\/code>\u548c\u5168\u5c40\u7684\u4f5c\u7528\u57df\uff0c<code>IDE<\/code>\u4e0d\u77e5\u9053\u8be5\u5f15\u7528\u54ea\u4e2a\u4e86\u3002<\/p>\n<p>\u6211\u4eec\u53ef\u4ee5\u663e\u793a\u6dfb\u52a0<code>this@Column.<\/code>\uff0c\u8fd9\u6837\uff0c\u5c31\u4f1a\u5f15\u7528<code>Column<\/code>\u7684\u90a3\u4e2a<code>AnimatedVisibility<\/code>\u4e86<br \/> <img decoding=\"async\" src=\"http:\/\/120.46.136.9\/wp-content\/uploads\/2024\/10\/frc-01c92c0d5ae2693a67818adf8fd87b26.png\"><br \/> \u5f53\u7136\u4e5f\u53ef\u4ee5\u5305\u88c5\u4e00\u5c42<code>Compose<\/code>\u51fd\u6570\uff0c\u4f7f\u7528\u5168\u5c40\u4f5c\u7528\u57df\u7684<code>AnimatedVisibility<\/code><br \/> <img decoding=\"async\" src=\"http:\/\/120.46.136.9\/wp-content\/uploads\/2024\/10\/frc-d0a5672c8b5ae05a5ef97809edc73cb6.png\"><br \/> \u8fd9\u4e24\u79cd\u90fd\u662f\u53ef\u884c\u7684<\/p>\n<h3>\n<a id=\"5_Compose__237\"><\/a>5. Compose \u52a8\u753b\u7cfb\u5217<\/h3>\n<p>Compose \u52a8\u753b\u7cfb\u5217\uff0c\u540e\u7eed\u6301\u7eed\u66f4\u65b0\uff0c\u53ef\u4ee5\u5148\u5173\u6ce8<br \/> <a href=\"https:\/\/blog.csdn.net\/EthanCo\/article\/details\/128601647\">Compose \u52a8\u753b (\u4e00) : animateXxxAsState \u5b9e\u73b0\u653e\u5927\/\u7f29\u5c0f\/\u6e10\u53d8\u7b49\u6548\u679c<\/a><br \/> <a href=\"https:\/\/blog.csdn.net\/EthanCo\/article\/details\/128569226\">Compose \u52a8\u753b (\u4e8c) : \u4e3a\u4ec0\u4e48animateDpAsState\u8981\u7528val ? MutableState\u548cState\u6709\u4ec0\u4e48\u533a\u522b ?<\/a><br \/> <a href=\"https:\/\/blog.csdn.net\/EthanCo\/article\/details\/129268245\">Compose \u52a8\u753b (\u4e09) : AnimatedVisibility \u4ece\u5165\u95e8\u5230\u6df1\u5165<\/a><br \/> <a href=\"https:\/\/blog.csdn.net\/EthanCo\/article\/details\/129381503\">Compose \u52a8\u753b (\u56db) : AnimatedVisibility \u5404\u79cd\u5165\u573a\u548c\u51fa\u573a\u52a8\u753b\u6548\u679c<\/a><\/p>\n<p>\u6587\u7ae0\u6765\u6e90\u4e8e\u4e92\u8054\u7f51:<a href=\"https:\/\/blog.csdn.net\/EthanCo\/article\/details\/129268245\" target=\"_blank\" rel=\"noopener\">Compose \u52a8\u753b (\u4e09) : AnimatedVisibility \u4ece\u5165\u95e8\u5230\u6df1\u5165\uff0c\u5b9e\u73b0\u7ec4\u4ef6\u7684\u9690\u85cf\u548c\u663e\u793a<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. AnimatedVisibility \u662f\u4ec0\u4e48 AnimatedVisibility\u662fAndroid Co&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":240,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-237","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/newstrong.top\/index.php\/wp-json\/wp\/v2\/posts\/237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/newstrong.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/newstrong.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/newstrong.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/newstrong.top\/index.php\/wp-json\/wp\/v2\/comments?post=237"}],"version-history":[{"count":0,"href":"https:\/\/newstrong.top\/index.php\/wp-json\/wp\/v2\/posts\/237\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/newstrong.top\/index.php\/wp-json\/wp\/v2\/media\/240"}],"wp:attachment":[{"href":"https:\/\/newstrong.top\/index.php\/wp-json\/wp\/v2\/media?parent=237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/newstrong.top\/index.php\/wp-json\/wp\/v2\/categories?post=237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/newstrong.top\/index.php\/wp-json\/wp\/v2\/tags?post=237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}