{"id":669,"date":"2018-08-17T12:24:15","date_gmt":"2018-08-17T03:24:15","guid":{"rendered":"http:\/\/www.charlezz.com\/?p=669"},"modified":"2019-12-21T18:33:52","modified_gmt":"2019-12-21T09:33:52","slug":"constraint-layout-part1-%eb%a7%8c%eb%8a%a5-%eb%a0%88%ec%9d%b4%ec%95%84%ec%9b%83","status":"publish","type":"post","link":"https:\/\/charlezz.com\/?p=669","title":{"rendered":"Constraint Layout &#8211; Part1. \ub9cc\ub2a5 \ub808\uc774\uc544\uc6c3"},"content":{"rendered":"<h1>ConstraintLayout<\/h1>\n<p>ConstraintLayout\uc740 ViewGroup\uc744 \uc0c1\uc18d\ubc1b\uc544 \ud655\uc7a5\uc2dc\ud0a8 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc785\ub2c8\ub2e4. \uc9c0\ub09c 2017\ub144 2\uc6d4\uc5d0 1.0 \ubc84\uc804\uc774 \ucd9c\uc2dc\ub418\uc5b4 \ub9ce\uc740 \uac1c\ubc1c\uc790\ub4e4\uc774 \uc774 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc720\uc6a9\ud558\uac8c \uc368\uc654\uc2b5\ub2c8\ub2e4. \ucd9c\uc2dc\ub54c\ub294 Android API9 \uc218\uc900\uae4c\uc9c0 \uc9c0\uc6e0\ud588\uc5c8\ub294\ub370\uc694, 2.0\ubd80\ud130\ub294 API 14 \uc218\uc900\ubd80\ud130 \uc9c0\uc6d0\ud558\uac8c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc0ac\uc2e4\uc0c1 API 14\uc774\uc0c1\ub9cc\ub418\uc5b4\ub3c4 \uc548\ub4dc\ub85c\uc774\ub4dc \uc804\uccb4 \uc774\uc6a9\uc790 99.9%\uac00 \uc774\uc5d0 \ud574\ub2f9\ud558\uae30 \ub54c\ubb38\uc5d0 \ud2b9\uc218\ud55c \uac1c\ubc1c\ubaa9\uc801 \ub610\ub294 \ud658\uacbd\uc744 \uc81c\uc678\ud558\uace0\ub294 \ubc94\uc6a9\uc801\uc73c\ub85c \uc4f0\uc77c \uc218 \uc788\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4.<\/p>\n<h2>ConstraintLayout \uc65c \uc368\uc57c\ud558\uc8e0?<\/h2>\n<p>ConstraintLayout \uc774\uc804\uc758 \ub808\uc774\uc544\uc6c3\ub4e4\ub3c4 \uba4b\uc9c0\uace0 \uc544\ub984\ub2e4\uc6b4 UI\ub97c \ud45c\ud604\ud560 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uac1c\ubc1c\uc790\ub4e4\uc740 \uadf8\uac83\ub4e4\uc744 \ud45c\ud604\ud558\uae30\uc704\ud574 \uace8\uce58\uac00 \uc544\ud320\uace0, \ub2e4\uc591\ud55c \ube44\uc728\uacfc \ud574\uc0c1\ub3c4\uae4c\uc9c0 \uc9c0\uc6d0\ud558\ub824\uba74 \uc5b4\uca54 \uc218 \uc5c6\uc774 \uac19\uc740\uc774\ub984\uc73c\ub85c \ud574\ub2f9 \uc870\uac74\uc5d0 \ud574\ub2f9\ud558\ub294 \uc5ec\ub7ec\ubc8c\uc758 \ub808\uc774\uc544\uc6c3\uc744 \ub9cc\ub4e4\uc5b4\uc57c \ud588\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uc0dd\uc0b0\uc131\uacfc \uc720\uc9c0\ubcf4\uc218\ub97c \ud798\ub4e4\uac8c \ud588\uc2b5\ub2c8\ub2e4. \uc2ec\uc9c0\uc5b4 \ubcf5\uc7a1\ud55c \ub808\uc774\uc544\uc6c3\uc758 \uacbd\uc6b0 \uc5ec\ub7ec\uacc4\uce35\uc758 \uad6c\uc870\ub85c \ub9cc\ub4e4\uc5b4\uc57c\ud558\ub2e4 \ubcf4\ub2c8 \uae4a\uc774\uac00 \uae4a\uc5b4\uc9c0\uace0 \uc774\ud574\ud558\uae30\uac00 \uc810\uc810 \ud798\ub4e4\uc5c8\uc5c8\uc2b5\ub2c8\ub2e4. ConstraintLayout\uc740 \uc774\ub7f0 \uc5b4\ub824\uc6c0\ub4e4\uc744 \ubaa8\ub450 \ud574\uacb0\ud574\uc90d\ub2c8\ub2e4. \ud558\ub098\uc758 \ub808\uc774\uc544\uc6c3\uc73c\ub85c \ub2e4\uc591\ud55c \uc720\uc2a4\ucf00\uc774\uc2a4\uc5d0 \ub300\uc751\uc774\ub418\uba70, \ub2e8\uc21c\ud55c \uacc4\uce35 \uad6c\uc870\ub85c \uc774\ud574\ud558\uae30\ub3c4 \uc27d\uace0, flat\ud55c \uad6c\uc870\ub97c \uc720\uc9c0\ud55c\ub2e4\uba74 \ubdf0\ub97c \uadf8\ub9ac\ub294 \ud37c\ud3ec\uba3c\uc2a4 \ud5a5\uc0c1\uc740 \ub364\uc73c\ub85c \uc5bb\uc5b4\uac08 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ud604\uc7ac ConstraintLayout\uc774 \uc9c0\uc6d0\ud558\ub294 \uae30\ub2a5<\/h2>\n<h4>Relative Positioning (\uc0c1\ub300\uc801 \ubc30\uce58)<\/h4>\n<p>\uc0c1\ub300\uc801\uc778 \ubc30\uce58\ub294 RelativeLayout\uacfc \ud761\uc0ac\ud558\uba70 ConstraintLayout\uc5d0 \uac00\uc7a5 \uae30\ubcf8\uc801\uc778 \uae30\ub2a5\uc785\ub2c8\ub2e4. \uc774 \uae30\ub2a5\uc740 View\uc640 View\uac04\uc758 \uc81c\uc57d\uc870\uac74\uc744 \ud1b5\ud574 \uc704\uce58\ub97c \uacb0\uc815\uc9d3\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/developer.android.com\/reference\/android\/support\/constraint\/resources\/images\/relative-positioning-constraints.png\" width=\"574\" height=\"155\" class=\"alignnone size-large\" \/><\/p>\n<p>\uac00\ub85c\ucd95 \uc0c1\uc758 \ubc30\uce58\ub294 <strong>left<\/strong>, <strong>right<\/strong>, <strong>start<\/strong> \uadf8\ub9ac\uace0 <strong>end<\/strong> \uc18d\uc131\uc73c\ub85c \ud560 \uc218 \uc788\uc73c\uba70, \uc138\ub85c\ucd95 \uc0c1\uc758 \ubc30\uce58\ub294 <strong>top<\/strong>, <strong>bottom<\/strong> \uadf8\ub9ac\uace0 text\uc5d0 \ud55c\ud574\uc11c <strong>baseline<\/strong>\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc77c\ubc18\uc801\uc73c\ub85c \uc544\ub798\uc640 \uac19\uc740 \ucf58\uc149\uc744 \uac00\uc9c0\uace0 View\ub97c \ubc30\uce58 \ud569\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/developer.android.com\/reference\/android\/support\/constraint\/resources\/images\/relative-positioning.png\" width=\"475\" height=\"234\" class=\"alignnone size-large\" \/><\/p>\n<pre class=\"lang: decode:true\">&lt;androidx.constraintlayout.widget.ConstraintLayout ...&gt;\r\n    &lt;Button android:id=\"@+id\/buttonA\" ... \/&gt;\r\n    &lt;Button android:id=\"@+id\/buttonB\" ...\r\n            app:layout_constraintLeft_toRightOf=\"@+id\/buttonA\" \/&gt;\r\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;<\/pre>\n<p>\ucf54\ub4dc\ub97c \ud655\uc778\ud574\ubcf4\uc790. buttonB\uc758 \uc67c\ucabd\ud3b8\uc744 buttonA\uc758 \uc624\ub978\ucabd\uc5d0 \ubc30\uce58\ud558\ub77c\ub294\uac83\uc744 \uc54c \uc218 \uc788\ub2e4.<\/p>\n<p>\uc774\uac83 \uc678\uc5d0\ub3c4 \ub9ce\uc740 \ubc30\uce58 \ubc29\ubc95\ub4e4\uc774 \uc788\uc73c\ub2c8 \ud655\uc778\ud574\ubcf4\uc790<\/p>\n<ul>\n<li><code>layout_constraintLeft_toLeftOf<\/code><\/li>\n<li><code>layout_constraintLeft_toRightOf<\/code><\/li>\n<li><code>layout_constraintRight_toLeftOf<\/code><\/li>\n<li><code>layout_constraintRight_toRightOf<\/code><\/li>\n<li><code>layout_constraintTop_toTopOf<\/code><\/li>\n<li><code>layout_constraintTop_toBottomOf<\/code><\/li>\n<li><code>layout_constraintBottom_toTopOf<\/code><\/li>\n<li><code>layout_constraintBottom_toBottomOf<\/code><\/li>\n<li><code>layout_constraintBaseline_toBaselineOf<\/code><\/li>\n<li><code>layout_constraintStart_toEndOf<\/code><\/li>\n<li><code>layout_constraintStart_toStartOf<\/code><\/li>\n<li><code>layout_constraintEnd_toStartOf<\/code><\/li>\n<li><code>layout_constraintEnd_toEndOf<\/code><\/li>\n<\/ul>\n<p>\ub9cc\uc57d buttonB\uc785\uc7a5\uc5d0\uc11c \ubd80\ubaa8\ubdf0\uc778 ConstraintLayout\uc5d0 \uad00\ub828\ud558\uc5ec \ubc30\uce58\ub97c \ud558\uace0 \uc2f6\ub2e4\uba74 id\ub300\uc2e0\u00a0<strong>parent<\/strong> \ud0a4\uc6cc\ub4dc\ub97c \uc0ac\uc6a9\ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:xhtml decode:true\">&lt;Button android:id=\"@+id\/buttonB\" ...\r\n        app:layout_constraintLeft_toLeftOf=\"parent\" \/&gt;<\/pre>\n<h4>Margins (\uc5ec\ubc31)<\/h4>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/developer.android.com\/reference\/android\/support\/constraint\/resources\/images\/relative-positioning-margin.png\" width=\"483\" height=\"143\" class=\"alignnone size-large\" \/><\/p>\n<p>\ub9cc\uc57d \uc5ec\ubc31\uc744 \uc8fc\uace0 \uc2f6\ub2e4\uba74 margin\uc744 \uc774\uc6a9\ud558\uba74 \ub429\ub2c8\ub2e4. \uc5ec\ubc31\uc5d0 \ub4e4\uc5b4\uac00\ub294 \uac12\uc740 \uc624\uc9c1 0 \ub610\ub294 \uc591\uc218\uac12\ub9cc \uc801\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc5ec\ubc31\uc744 \uc904 \uc218 \uc788\ub294 \ub2e4\uc591\ud55c \ubc29\ubc95\uc785\ub2c8\ub2e4.<\/p>\n<ul>\n<li><code>android:layout_marginStart<\/code><\/li>\n<li><code>android:layout_marginEnd<\/code><\/li>\n<li><code>android:layout_marginLeft<\/code><\/li>\n<li><code>android:layout_marginTop<\/code><\/li>\n<li><code>android:layout_marginRight<\/code><\/li>\n<li><code>android:layout_marginBottom<\/code><\/li>\n<\/ul>\n<p>\uc5f0\uacb0\ub418\uc5c8\ub358 \ubdf0\uc758 \uac00\uc2dc\uc131(Visibility)\uc774 \uc228\uae40\uc0c1\ud0dc(GONE)\uc77c \ub54c\uc5d0 \ub300\ud55c \uc5ec\ubc31\uc744 \ub530\ub85c \uc801\uc6a9\ud558\uace0 \uc2f6\uc744\ub54c\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ub798\uc758 \uadf8\ub9bc\uc744 \ud655\uc778\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n<div class=\"post\">\n<div class=\"col-xs-12 col-md-10 col-md-offset-1 content\">\n<div class=\"tab-content\">\n<div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"transcript\">\n<div class=\"js-content-container content\">\n<p><img decoding=\"async\" src=\"https:\/\/images.contentful.com\/emmiduwd41v7\/1GHCNcZjC0OwIKQkGQ644a\/1339b7d26f91de400d2c3ea97ba9282c\/constraintlayout-gone.gif\" alt=\"constraintlayout-gone\" class=\"aligncenter\" \/>(\ucd9c\ucc98:Realm \uc544\uce74\ub370\ubbf8 \ube14\ub85c\uadf8)<\/p>\n<p>\uc5f0\uacb0\ub41c View\uac00 \uc228\uaca8\uc9c8 \ub54c\uc758 \uc5ec\ubc31\uc5d0 \ub300\ud55c \uc18d\uc131\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li><code>layout_goneMarginStart<\/code><\/li>\n<li><code>layout_goneMarginEnd<\/code><\/li>\n<li><code>layout_goneMarginLeft<\/code><\/li>\n<li><code>layout_goneMarginTop<\/code><\/li>\n<li><code>layout_goneMarginRight<\/code><\/li>\n<li><code>layout_goneMarginBottom<\/code><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<table style=\"width: 94.08916952054794%; height: 29px;\">\n<tbody>\n<tr style=\"height: 29px;\">\n<td style=\"height: 29px;\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>Centering positioning (\uc911\uc559 \ubc30\uce58)<\/h4>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/developer.android.com\/reference\/android\/support\/constraint\/resources\/images\/centering-positioning.png\" width=\"421\" height=\"97\" class=\"alignnone size-large\" \/><\/p>\n<p>\ub9cc\uc57d View\ub97c \uc911\uc559\uc815\ub82c\ud558\uace0 \uc2f6\ub2e4\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \ubc30\uce58\ud558\uba74\ub429\ub2c8\ub2e4.<\/p>\n<pre class=\"lang: decode:true\">&lt;androidx.constraintlayout.widget.ConstraintLayout ...&gt;\r\n    &lt;Button android:id=\"@+id\/button\" ...\r\n            app:layout_constraintLeft_toLeftOf=\"parent\"\r\n            app:layout_constraintRight_toRightOf=\"parent\/&gt;\r\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout ...&gt;<\/pre>\n<p>bias\ub77c\ub294 \uc18d\uc131\uc774 \uc788\ub294\ub370 \uc774\ub97c \ud1b5\ud574\uc11c \uc774\ubbf8 \uc815\ub82c\ub41c View\ub97c \ud55c\ucabd\uc73c\ub85c \uce58\uc6b0\uce58\uac8c \ub9cc\ub4e4 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/developer.android.com\/reference\/android\/support\/constraint\/resources\/images\/centering-positioning-bias.png\" width=\"421\" height=\"97\" class=\"alignnone size-large\" \/><br \/>\n\uc911\uc559\uc73c\ub85c \ubc30\uce58\ub41c A\ub97c \uc67c\ucabd\uc73c\ub85c 30% \uce58\uc6b0\uce58\uac8c \ub9cc\ub4e0 \ubaa8\uc2b5.<\/p>\n<pre class=\"lang: decode:true\">&lt;androidx.constraintlayout.widget.ConstraintLayout ...&gt;\r\n    &lt;Button android:id=\"@+id\/button\" ...\r\n            app:layout_constraintHorizontal_bias=\"0.3\"\r\n            app:layout_constraintLeft_toLeftOf=\"parent\"\r\n            app:layout_constraintRight_toRightOf=\"parent\/&gt;\r\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;<\/pre>\n<p>bias\uc758 \uae30\ubcf8\uac12\uc740 0.5 (50%) \uc785\ub2c8\ub2e4. \uc138\ub85c\ucd95 \ubc0f \uac00\ub85c\ucd95 \uae30\uc900\uc73c\ub85c \uce58\uc6b0\uce58\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc73c\uba70 \ub2e4\uc74c\uacfc \uac19\uc740 \uc18d\uc131\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<ul>\n<li><code>layout_constraintHorizontal_bias<\/code><\/li>\n<li><code>layout_constraintVertical_bias<\/code><\/li>\n<\/ul>\n<h4>1.1\ubc84\uc804\uc5d0\uc11c \ucd94\uac00\ub41c Circular positioning (\uc6d0\ud615 \ubc30\uce58)\u00a0<\/h4>\n<p>\ud55c View\uc758 \uc911\uc810\uc744 \uae30\uc900\uc73c\ub85c \ub2e4\ub978 View\uc758 \uc911\uc810\uc744 \ubc30\uce58 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac01\ub3c4\uc640 \uac70\ub9ac\uc758 \uac12\uc774 \ud544\uc694\ud558\uba70 \ubdf0\uac00 \ubc30\uce58\ub420 \uc218 \uc788\ub294 \uacf3\uc744 \uc774\uc73c\uba74 \uc6d0\uc774 \ub429\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/developer.android.com\/reference\/android\/support\/constraint\/resources\/images\/circle1.png\" width=\"325\" height=\"325\" class=\"alignnone size-large\" \/><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/developer.android.com\/reference\/android\/support\/constraint\/resources\/images\/circle2.png\" width=\"325\" height=\"325\" class=\"alignnone size-large\" \/><\/p>\n<pre class=\"lang: decode:true lang:\">&lt;androidx.constraintlayout.widget.ConstraintLayout ...&gt;\r\n    &lt;Button android:id=\"@+id\/buttonA\" ... \/&gt;\r\n        &lt;Button android:id=\"@+id\/buttonB\" ...\r\n            app:layout_constraintCircle=\"@+id\/buttonA\"\r\n            app:layout_constraintCircleRadius=\"100dp\"\r\n            app:layout_constraintCircleAngle=\"45\" \/&gt;\r\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p>\uc0ac\uc6a9\ud558\ub294 \uc18d\uc131\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li><code>layout_constraintCircle<\/code> : \uae30\uc900\uc73c\ub85c \ucc38\uc870\ud560 View\uc758 id<\/li>\n<li><code>layout_constraintCircleRadius<\/code> : \ucc38\uc870\ud55c View\uc640\uc758 \uac70\ub9ac(\ubc18\uc9c0\ub984)<\/li>\n<li><code>layout_constraintCircleAngle<\/code> : 0\ubd80\ud130 360\uae4c\uc9c0 \ucc38\uc870\ud55c \ubdf0\ub85c\ubd80\ud130\uc758 \uac01\ub3c4<\/li>\n<\/ul>\n<h4>Visibility behavior (\uac00\uc2dc\uc131\uc5d0 \ub530\ub978 \ub3d9\uc791)<\/h4>\n<p>\uc774\ubbf8 \uc5ec\ubc31(Margin)\uae30\ub2a5\uc744 \ubcf4\uba74\uc11c \ub290\ub07c\uc168\uaca0\uc9c0\ub9cc, ConstraintLayout\ub0b4\uc758 \uc5f0\uacb0\ub41c View\ub4e4\uac04\uc5d0\uc11c \ud558\ub098\uc758 View\uac00 \uc228\uaca8\uc9c0\uba74(GONE) ConstraintLayout\uc5d0\uc11c \ud2b9\uc815 \ucc98\ub9ac\ub97c \ud558\ub3c4\ub85d \ub418\uc5b4\uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>GONE\ub41c View\ub294 \ud45c\uc2dc\ub418\uc9c0\ub3c4 \uc54a\uace0 \ub808\uc774\uc544\uc6c3\uc758 \uc77c\ubd80\ub85c \ucde8\uae09\ub418\uc9c0\ub3c4 \uc54a\uc9c0\ub9cc \uc704\uce58\ub098 \uce58\uc218\ub97c \uacc4\uc0b0\ud558\ub294 \uce21\uba74\uc5d0\uc11c\ub294 \uc5ec\uc804\ud788 \uc758\ubbf8\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub808\uc774\uc544\uc6c3\uc774 \uc0ac\uc774\uc988\ub97c \uacc4\uc0b0\ud558\uace0 \uadf8\ub9ac\uae30 \uc704\ud574\uc11c\ub294 GONE\ub41c View\ub294 \uae30\ubcf8\uc801\uc73c\ub85c \ud558\ub098\uc758 \uc810\ucc98\ub7fc \ucde8\uae09\ub429\ub2c8\ub2e4. \ub2e4\ub978 View\uc5d0 \uc81c\uc57d\uc870\uac74\uc774 \uc788\ub2e4\uba74 \uc5ec\uc804\ud788 \uc601\ud5a5\uc744 \ubbf8\uce60\ud14c\uc9c0\ub9cc \uae30\ubcf8\uc801\uc73c\ub85c \uc5ec\ubc31(Margin)\uc740 0\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774\ub7ec\ud55c \ub3d9\uc791\uc744 \uc0ac\uc6a9\ud558\uba74 \ub808\uc774\uc544\uc6c3\uc744 \ud574\uce58\uc9c0 \uc54a\ub294\uc120\uc5d0\uc11c \uac04\ub2e8\ud55c \ub808\uc774\uc544\uc6c3 \uc560\ub2c8\uba54\uc774\uc158\uc744 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h4>Dimension constraints (\ud06c\uae30 \ubc0f \uce58\uc218\uc5d0 \ub300\ud55c \uc81c\uc57d\uc870\uac74)<\/h4>\n<p>ConstraintLayout\ub0b4\uc5d0\uc11c \ucd5c\uc18c\uac12 \ucd5c\ub300\uac12\uc744 \uc815\uc758 \ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li><code>android:minWidth<\/code>\u00a0\ucd5c\uc18c \uac00\ub85c \uae38\uc774<\/li>\n<li><code>android:minHeight<\/code> \ucd5c\uc18c \uc138\ub85c \uae38\uc774<\/li>\n<li><code>android:maxWidth<\/code> \ucd5c\ub300 \uac00\ub85c \uae38\uc774<\/li>\n<li><code>android:maxHeight<\/code> \ucd5c\ub300 \uc138\ub85c \uae38\uc774<\/li>\n<\/ul>\n<p>\uc774 \uc18d\uc131\ub4e4\uc740 <strong>ConstraintLayout\ub0b4<\/strong>\uc5d0\uc11c\ub9cc \uc0ac\uc6a9\uac00\ub2a5\ud558\uace0, <span>android:layout_width \ubc0f\u00a0android:layout_height\uc5d0 \ub300\ud55c \uac12\uc774\u00a0<\/span><strong>WRAP_CONTENT<\/strong>\ub85c \uc9c0\uc815 \ub418\uc5b4\uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>View\uc758 \uac00\ub85c \uc138\ub85c \uc0ac\uc774\uc988(<span>android:layout_width,\u00a0android:layout_height)<\/span>\ub294 \ud06c\uac8c 3\uac00\uc9c0 \ubc29\uc2dd\uc73c\ub85c \uacb0\uc815\ub429\ub2c8\ub2e4.<\/p>\n<ul>\n<li>\uc218\uce58\ub97c \uc9d1\uc801 \uc785\ub825\ud560\ub54c (\uc608\ub97c\ub4e4\uba74 100dp \ub77c\uace0 \uc9c1\uc811\uc785\ub825\ud558\ub294\uacbd\uc6b0)<\/li>\n<li>WRAP_CONTENT\ub97c \ud1b5\ud574 View\uc2a4\uc2a4\ub85c \uc0ac\uc774\uc988\ub97c \uacb0\uc815 \uc9c0\uc744 \ub54c<\/li>\n<li>0dp\ub97c \uc785\ub825\ud558\uace0 \uc81c\uc57d\uc870\uac74\uc5d0\uc758\ud574 \uc0ac\uc774\uc988\ub97c \uacb0\uc815\uc9c0\uc744 \ub54c. (0dp = MATCH_CONSTRAINT)<\/li>\n<\/ul>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/developer.android.com\/reference\/android\/support\/constraint\/resources\/images\/dimension-match-constraints.png\" width=\"474\" height=\"333\" class=\"alignnone size-large\" \/><\/p>\n<p>\uc704\uc758 \uadf8\ub9bc\uc744 \ubcf4\uba74 (a)\uc758 \uac00\ub85c \uae38\uc774\ub294 WRAP_CONTENT\ub85c \uc2a4\uc2a4\ub85c \uc0ac\uc774\uc988\ub97c \uacb0\uc815 \uc9c0\uc5c8\uace0, (b)\uc758 \uac00\ub85c\uae38\uc774\ub294 0dp\uc774\uba70, \uc88c\uc6b0\uce21\uc774 \ubd80\ubaa8\ubdf0\uc5d0 \uc81c\uc57d\uc774 \uac78\ub824 \ubd80\ubaa8\ubdf0\uc758 \uae38\uc774\uc640 \uac19\uac8c \ub298\uc5b4\ub09c \uc0c1\ud0dc\uc785\ub2c8\ub2e4. (c)\ub3c4 b\uc640 \uac19\uc774 0dp\uc774\uc9c0\ub9cc \uc5ec\ubc31\uac12\uc774 \uc801\uc6a9\ub41c \ubaa8\uc2b5\uc785\ub2c8\ub2e4.<\/p>\n<p>ConstraintLayout\uc5d0\uc11c \uc81c\uc57d\uc870\uac74 \uc774\uc6a9\uc2dc MATCH_PARENT\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\ub294\uac83\uc744 \ucd94\ucc9c\ud569\ub2c8\ub2e4. \ub300\uc2e0 left\/right \ub610\ub294 top\/bottom \uc81c\uc57d\uc870\uac74\uacfc \ud568\uaed8 MATCH_CONSTRAINT\ub97c \uc774\uc6a9\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n<h5><strong>1.1 \ubc84\uc804\uc5d0\uc11c\uc758 WRAP_CONTENT<\/strong><\/h5>\n<p>\ub9cc\uc57d \uc0ac\uc774\uc988\uc5d0 WRAP_CONTENT\ub97c \uc9c0\uc815\ud55c\ub2e4\uba74 1.1\ubc84\uc804\uc774\uc804\uc5d0\ub294 \ub9d0\uadf8\ub300\ub85c View\uc2a4\uc2a4\ub85c \ucf58\ud150\uce20\uc758 \uc0ac\uc774\uc988\ub97c \ub3d9\uc801\uc73c\ub85c \uacb0\uc815 \uc9c0\uc5c8\uc2b5\ub2c8\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c\ub294 \ubb38\uc81c\uac00 \ub418\uc9c0 \uc54a\uc558\uc73c\ub098, \ubb38\uc81c\uac00 \ub418\ub294 \ucf00\uc774\uc2a4\uac00 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uc608\ub97c\ub4e4\uba74 TextView\uc640 Button\uc744 \uac00\ub85c\ub85c \ubc30\uce58\ud560 \ub54c\uc785\ub2c8\ub2e4.\u00a0<\/p>\n<ul>\n<li>\uc870\uac741. TextView\uc758 Text\uac00\ub85c \uae38\uc774\ub294 \uac00\ubcc0\uc801\uc774\uace0 Button\uc740 \uace0\uc815\uc801\uc785\ub2c8\ub2e4.\u00a0<\/li>\n<li>\uc870\uac742. TextView\ub294 \uc88c\uc0c1\ub2e8\uc5d0 \ubc30\uce58\ud558\uace0, Button\uc740 TextView\uc624\ub978\ucabd\ud3b8\uc5d0 \ub531 \ubd99\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre class=\"lang: decode:true\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\r\n    android:layout_width=\"match_parent\"\r\n    android:layout_height=\"match_parent\"&gt;\r\n\r\n    &lt;TextView\r\n        android:id=\"@+id\/text1\"\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:background=\"@color\/colorAccent\"\r\n        android:ellipsize=\"end\"\r\n        android:maxLines=\"1\"\r\n        android:text=\"Hello World!!\"\r\n        app:layout_constraintEnd_toStartOf=\"@+id\/button1\"\r\n        app:layout_constraintHorizontal_bias=\"0\"\r\n        app:layout_constraintHorizontal_chainStyle=\"packed\"\r\n        app:layout_constraintStart_toStartOf=\"parent\"\r\n        app:layout_constraintTop_toTopOf=\"parent\" \/&gt;\r\n\r\n    &lt;Button\r\n        android:id=\"@+id\/button1\"\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:text=\"button1\"\r\n        app:layout_constraintEnd_toEndOf=\"parent\"\r\n        app:layout_constraintStart_toEndOf=\"@+id\/text1\"\r\n        app:layout_constraintTop_toTopOf=\"parent\" \/&gt;\r\n\r\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;<\/pre>\n<p><a href=\"https:\/\/www.charlezz.com\/?attachment_id=43794\" rel=\"attachment wp-att-43794\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/charles-2019-12-21-\uc624\ud6c4-6.30.49.png\" alt=\"\" width=\"968\" height=\"148\" class=\"aligncenter size-full wp-image-43794\" srcset=\"https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/charles-2019-12-21-\uc624\ud6c4-6.30.49.png 968w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/charles-2019-12-21-\uc624\ud6c4-6.30.49-300x46.png 300w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/charles-2019-12-21-\uc624\ud6c4-6.30.49-768x117.png 768w\" sizes=\"(max-width: 968px) 100vw, 968px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Text\uac00 \uc9e7\uc744 \ub54c\ub294 \uc544\ubb34\ubb38\uc81c\uac00 \uc5c6\uc5b4\ubcf4\uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc Text\uc758 \uae38\uc774\uac00 \ub298\uc5b4\ub09c\ub2e4\uba74 \uc5b4\ub5bb\uac8c \ub420\uae4c\uc694?<\/p>\n<p><a href=\"https:\/\/www.charlezz.com\/?attachment_id=43795\" rel=\"attachment wp-att-43795\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/charles-2019-12-21-\uc624\ud6c4-6.31.49.png\" alt=\"\" width=\"968\" height=\"148\" class=\"aligncenter size-full wp-image-43795\" srcset=\"https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/charles-2019-12-21-\uc624\ud6c4-6.31.49.png 968w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/charles-2019-12-21-\uc624\ud6c4-6.31.49-300x46.png 300w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/charles-2019-12-21-\uc624\ud6c4-6.31.49-768x117.png 768w\" sizes=\"(max-width: 968px) 100vw, 968px\" \/><\/a><\/p>\n<p>TextView\uc758 \uae34 \uac00\ub85c \uae38\uc774 \ub54c\ubb38\uc5d0 \ubc84\ud2bc\uc774 \ub808\uc774\uc544\uc6c3 \ubc16\uc73c\ub85c \ube60\uc838\ub098\uac04 \ubaa8\uc2b5\uc785\ub2c8\ub2e4.<br \/>\n\ubc84\ud2bc\uc744 \ub808\uc774\uc544\uc6c3 \ubc16\uc73c\ub85c \ubc00\ub824\ub098\uac00\uc9c0 \uc54a\uac8c \ud558\uae30\uc704\ud574\uc11c\ub294 \ub2e4\uc74c \uc18d\uc131\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<ul>\n<li><code>app:layout_constrainedWidth=\u201dtrue|false\u201d<\/code><\/li>\n<li><code>app:layout_constrainedHeight=\u201dtrue|false\u201d<\/code><\/li>\n<\/ul>\n<p>\uc2e4\uc81c\ub85c layout_constrainedWidth\uc18d\uc131\uc744 \uc0ac\uc6a9\ud560 \ub54c \uc5b4\ub5bb\uac8c \ub418\ub294\uc9c0 \ud655\uc778\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang: decode:true\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\r\n    android:layout_width=\"match_parent\"\r\n    android:layout_height=\"match_parent\"&gt;\r\n\r\n    &lt;TextView\r\n        android:id=\"@+id\/text1\"\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:background=\"@color\/colorAccent\"\r\n        android:ellipsize=\"end\"\r\n        android:maxLines=\"1\"\r\n        android:text=\"Hello World!! My Name is Charles. Nice to Meet ya!!.\"\r\n        app:layout_constrainedWidth=\"true\"\r\n        app:layout_constraintEnd_toStartOf=\"@+id\/button1\"\r\n        app:layout_constraintHorizontal_bias=\"0\"\r\n        app:layout_constraintHorizontal_chainStyle=\"packed\"\r\n        app:layout_constraintStart_toStartOf=\"parent\"\r\n        app:layout_constraintTop_toTopOf=\"parent\" \/&gt;\r\n\r\n    &lt;Button\r\n        android:id=\"@+id\/button1\"\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:text=\"button1\"\r\n        app:layout_constraintEnd_toEndOf=\"parent\"\r\n        app:layout_constraintStart_toEndOf=\"@+id\/text1\"\r\n        app:layout_constraintTop_toTopOf=\"parent\" \/&gt;\r\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;<\/pre>\n<p>\n<a href=\"https:\/\/www.charlezz.com\/?attachment_id=43796\" rel=\"attachment wp-att-43796\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/charles-2019-12-21-\uc624\ud6c4-6.33.20.png\" alt=\"\" width=\"968\" height=\"148\" class=\"aligncenter size-full wp-image-43796\" srcset=\"https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/charles-2019-12-21-\uc624\ud6c4-6.33.20.png 968w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/charles-2019-12-21-\uc624\ud6c4-6.33.20-300x46.png 300w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/charles-2019-12-21-\uc624\ud6c4-6.33.20-768x117.png 768w\" sizes=\"(max-width: 968px) 100vw, 968px\" \/><\/a><\/p>\n<p>\ubc84\ud2bc\uc774 \ub808\uc774\uc544\uc6c3 \ubc16\uc73c\ub85c \ube60\uc838\ub098\uac00\uc9c0 \uc54a\ub294 \uac83\uc744 \ud655\uc778 \ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h5><strong>1.1\uc5d0\uc11c \ucd94\uac00\ub41c MATCH_CONSTRAINT\uc758 \uae30\ub2a5<\/strong><\/h5>\n<p>\uac00\ub85c,\uc138\ub85c \uae38\uc774 \uc785\ub825\ud558\ub294 \ubd80\ubd84\uc5d0 0dp(=MATCH_CONSTRAINT)\uc744 \uc801\uc6a9\ud560 \ub54c, \uae30\ubcf8\uc801\uc778 \ub3d9\uc791\uc740 MATCH_PARENT\ucc98\ub7fc \uacf5\uac04\uc744 \ubd80\ubaa8\ubdf0\uc5d0 \ub9de\uac8c \uaf49\ucc44\uc6b0\uac8c \ub429\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uba87\uba87 \uc18d\uc131\uacfc \uac19\uc774 \uc4f4\ub2e4\uba74 \uae30\ub2a5\uc774 \uc880 \ub2ec\ub77c\uc9d1\ub2c8\ub2e4.<\/p>\n<ul>\n<li><code>layout_constraintWidth_min<\/code> and <code>layout_constraintHeight_min<\/code> : WRAP_CONTENT\ucc98\ub7fc \ub3d9\uc791\ud558\ub098 \ucd5c\uc18c\uac12\uc744 \uac00\uc9d0<\/li>\n<li><code>layout_constraintWidth_max<\/code> and <code>layout_constraintHeight_max<\/code> : WRAP_CONTENT\ucc98\ub7fc \ub3d9\uc791\ud558\ub098 \ucd5c\ub300\uac12\uc744 \uac00\uc9d0<\/li>\n<li><code>layout_constraintWidth_percent<\/code> and <code>layout_constraintHeight_percent<\/code> : 0\uc5d0\uc11c 1\uae4c\uc9c0 float \uac12\uc744 \uc785\ub825\ud558\uc5ec \ube44\uc728\uc801\uc73c\ub85c \uae38\uc774\ub97c \uacb0\uc815<\/li>\n<\/ul>\n<p>\ub9cc\uc57d \ubdf0\uc758 \uac00\ub85c\uc640 \uc138\ub85c\uc758 \ube44\uc728\uc744 \uacb0\uc815\ud558\uace0 \uc2f6\ub2e4\uba74 \uc544\ub798\uc758 \uc18d\uc131\uc744 \uc774\uc6a9\ud558\uc2dc\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<ul>\n<li><span>layout_constraintDimensionRatio\u00a0<\/span><\/li>\n<\/ul>\n<pre class=\"lang:xhtml decode:true\">&lt;Button android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"0dp\" \r\n        app:layout_constraintDimensionRatio=\"1:1\" \/&gt;\r\n         <\/pre>\n<p>\ub2e4\uc74c\uacfc \uac19\uc740 \ucf54\ub4dc\ub97c \uc785\ub825\ud558\uba74 \uac00\ub85c\uc0ac\uc774\uc988 \uae30\uc900\uc73c\ub85c \uc815\ubc29\ud615\uc758 \ubc84\ud2bc\uc744 \ud45c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uac00\ub85c \uc138\ub85c\ub97c \ub458\ub2e4 MATCH_CONSTRAINT\ub85c \uc801\uc6a9\ud558\ub294\uacbd\uc6b0 \uc81c\uc57d\uc870\uac74\uc5d0 \ub9cc\uc871\ud558\uba74\uc11c \ucd5c\ub300\ud55c\uc758 \ud06c\uae30\ub85c \ub298\ub824\uc9c0\uac8c \ub41c\ub2e4. \uc774\ub54c \uac00\ub85c \uc138\ub85c \ube44\uc728\uc744 \uacb0\uc815\ud558\uace0 \uc2f6\uc740\ub370 \uc138\ub85c\uae30\uc900 \ub610\ub294 \uac00\ub85c\uae30\uc900\uc73c\ub85c \ube44\uc728\uc744 \uc815\ud558\uace0 \uc2f6\ub2e4\uba74 &#8220;H&#8221; \ub610\ub294 &#8220;W&#8221;\ub97c \ubd99\uc774\uace0 \ucf64\ub9c8(,)\ub97c \ucc0d\uc740\ub4a4 \ube44\uc728\uc744 \uc801\uc5b4\uc8fc\uba74\ub429\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:java decode:true \">&lt;Button android:layout_width=\"0dp\"\r\n        android:layout_height=\"0dp\"\r\n        app:layout_constraintDimensionRatio=\"H,16:9\"\r\n        app:layout_constraintBottom_toBottomOf=\"parent\"\r\n        app:layout_constraintTop_toTopOf=\"parent\"\/&gt;<\/pre>\n<p>\ub2e4\uc74c\uacfc \uac19\uc774 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uba74 \uc138\ub85c\uae38\uc774\uae30\uc900\uc73c\ub85c 16:9\uc778 \ubc84\ud2bc\uc774 \ub808\uc774\uc544\uc6c3\uc5d0 \uaf49 \ucc28\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2018\/08\/\uc2a4\ud06c\ub9b0\uc0f7-2018-08-17-\uc624\uc804-10.14.37-181x300.png\" alt=\"\" width=\"181\" height=\"300\" class=\"aligncenter wp-image-681 size-medium\" \/><\/p>\n<h4>Chains (\ubdf0\ub07c\ub9ac \uc5f0\uacb0\ud558\uae30)<\/h4>\n<p>Chain\uc740 \ubdf0\uac04\uc758 \uc0c1\ud638 \ucc38\uc870 \uc5f0\uacb0\uc744 \ud560 \ub54c, \ubdf0\ub4e4\uc744 \uc5b4\ub5a4 \ubc29\uc2dd\uc73c\ub85c \uc5f0\uacb0 \uc2dc\ud0ac \uc2dc\ucf1c \ud45c\ud604 \ud560\uc9c0\ub97c \uacb0\uc815 \ud569\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/developer.android.com\/reference\/android\/support\/constraint\/resources\/images\/chains.png\" width=\"630\" height=\"174\" class=\"alignnone size-large\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Chain\uc18d\uc131\uc744 \ud1b5\ud574 \uc5f0\uacb0\uc744 \ud560\ub54c \ud560\ub54c\ub294 \uc218\ud3c9\uae30\uc900 \uac00\uc7a5 \uc67c\ucabd \uc788\ub294 View \ub610\ub294 \uc218\uc9c1 \uae30\uc900\uc73c\ub85c \uac00\uc7a5 \uc0c1\ub2e8\uc5d0 \uc788\ub294 View\uac00 \uae30\uc900(Head)\uc774 \ub429\ub2c8\ub2e4.<img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/developer.android.com\/reference\/android\/support\/constraint\/resources\/images\/chains-head.png\" width=\"917\" height=\"135\" class=\"alignnone size-large\" \/><\/p>\n<p>chain \uc2a4\ud0c0\uc77c\uc740 \uc5ec\ub7ec \ud615\ud0dc\uac00 \uc874\uc7ac \ud560 \uc218 \uc788\ub294\ub370 layout_constraintHorizontal_chianStyle \ub610\ub294 layout_constraintVertical_chainStyle\uc744 \uc5f0\uacb0\ub41c \ubdf0\ub4e4\uc758 head\uc5d0\ub9cc \uc801\uc5b4\uc8fc\uba74 \ub429\ub2c8\ub2e4. \uae30\ubcf8 chain\uc2a4\ud0c0\uc77c\uc740 CHAIN_SPREAD\uc785\ub2c8\ub2e4.<\/p>\n<ul>\n<li><code>CHAIN_SPREAD<\/code><span>\u00a0\ubdf0\ub4e4\uc744 \uace8\uace0\ub8e8 \ud3bc\uccd0 \uc5ec\ubc31\uc744 \uac19\uac8c \ud569\ub2c8\ub2e4(\uae30\ubcf8\uac12)<\/span><\/li>\n<li><code>CHAIN_SPREAD<\/code>\uc5d0\uc11c\uc758<span>\u00a0Weighted chain\uc740<\/span>\u00a0\ub9cc\uc57d \ubdf0\uc758 \uae38\uc774\uac00 0dp\ub85c \uc9c0\uc815\ub418\uc5b4\uc788\ub2e4\uba74 \ub0a8\uc740 \uacf5\uac04\uc744 \uc218\uce58\ub9cc\ud07c \ube44\uc728\uc801\uc73c\ub85c \ub098\ub220\uac16\uc2b5\ub2c8\ub2e4.<\/li>\n<li><code>CHAIN_SPREAD_INSIDE<\/code><span>\u00a0CHAIN_SPREAD\uc640 \ube44\uc2b7\ud558\uc9c0\ub9cc \uac00\uc7a5 \uc678\uacfd\uc5d0 \uc788\ub294 \ubdf0\ub4e4\uc740 \ubd80\ubaa8 \ubdf0\uc640 \uc5ec\ubc31\uc774 \uc5c6\ub294 \uc0c1\ud0dc\ub85c \uace8\uace0\ub8e8 \ud3bc\uccd0\uc9d1\ub2c8\ub2e4.<\/span><\/li>\n<li><code>CHAIN_PACKED<\/code>\ubdf0\ub4e4\uc774 \ub618\ub618 \ubb49\uce58\uac8c \ub418\uace0 \ubd80\ubaa8\ubdf0\ub85c\ubd80\ud130\uc758 \uc5ec\ubc31\uc744 \uac19\uac8c \ud569\ub2c8\ub2e4. \uc5ec\ubc31\uc744 \uc870\uc815\ud558\uace0 \uc2f6\ub2e4\uba74 bias\uc870\uc815\uc744 \ud1b5\ud574 \ud55c\ucabd\uc73c\ub85c \uce58\uc6b0\uce58\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/developer.android.com\/reference\/android\/support\/constraint\/resources\/images\/chains-styles.png\" width=\"1368\" height=\"616\" class=\"alignnone size-large\" \/><\/p>\n<p>\uc774\ubc88 \uc2dc\uac04\uc740 \uc5ec\uae30\uae4c\uc9c0\uc785\ub2c8\ub2e4. \uac00\uc0c1 \uc624\ube0c\uc81d\ud2b8\ub97c \ud1b5\ud574\uc11c \uc880\ub354 \ub2e4\uc591\ud55c \ub808\uc774\uc544\uc6c3\uc744 \uafb8\uba70\ubcf4\uace0 \uc2f6\ub2e4\uba74 <a href=\"https:\/\/www.charlezz.com\/?p=691\">Part2<\/a>\ub97c \ucc38\uc870\ud574\ubcf4\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. \uac10\uc0ac\ud569\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ConstraintLayout ConstraintLayout\uc740 ViewGroup\uc744 \uc0c1\uc18d\ubc1b\uc544 \ud655\uc7a5\uc2dc\ud0a8 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc785\ub2c8\ub2e4. \uc9c0\ub09c 2017\ub144 2\uc6d4\uc5d0 1.0 \ubc84\uc804\uc774 \ucd9c\uc2dc\ub418\uc5b4 \ub9ce\uc740 \uac1c\ubc1c\uc790\ub4e4\uc774 \uc774 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc720\uc6a9\ud558\uac8c \uc368\uc654\uc2b5\ub2c8\ub2e4. \ucd9c\uc2dc\ub54c\ub294 Android API9 \uc218\uc900\uae4c\uc9c0 \uc9c0\uc6e0\ud588\uc5c8\ub294\ub370\uc694, 2.0\ubd80\ud130\ub294 API 14 \uc218\uc900\ubd80\ud130 \uc9c0\uc6d0\ud558\uac8c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc0ac\uc2e4\uc0c1 API 14\uc774\uc0c1\ub9cc\ub418\uc5b4\ub3c4 \uc548\ub4dc\ub85c\uc774\ub4dc \uc804\uccb4 \uc774\uc6a9\uc790 99.9%\uac00 \uc774\uc5d0 \ud574\ub2f9\ud558\uae30 \ub54c\ubb38\uc5d0 \ud2b9\uc218\ud55c \uac1c\ubc1c\ubaa9\uc801 \ub610\ub294 \ud658\uacbd\uc744 \uc81c\uc678\ud558\uace0\ub294 \ubc94\uc6a9\uc801\uc73c\ub85c \uc4f0\uc77c \uc218 \uc788\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4. ConstraintLayout [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[16],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/669"}],"collection":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=669"}],"version-history":[{"count":14,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/669\/revisions"}],"predecessor-version":[{"id":43797,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/669\/revisions\/43797"}],"wp:attachment":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}