{"id":44524,"date":"2020-09-03T17:18:20","date_gmt":"2020-09-03T08:18:20","guid":{"rendered":"https:\/\/www.charlezz.com\/?p=44524"},"modified":"2020-09-03T17:18:20","modified_gmt":"2020-09-03T08:18:20","slug":"span%ec%9d%b4-%ec%a0%81%ec%9a%a9%eb%90%9c-%ed%85%8d%ec%8a%a4%ed%8a%b8%eb%a5%bc-%ec%9e%98%eb%9d%bc%ec%84%9c-%eb%b6%99%ec%9d%bc-%eb%95%8c-%ec%a0%9c%eb%8c%80%eb%a1%9c-%eb%82%98%ec%98%a4%ec%a7%80","status":"publish","type":"post","link":"https:\/\/charlezz.com\/?p=44524","title":{"rendered":"Span\uc774 \uc801\uc6a9\ub41c \ud14d\uc2a4\ud2b8\ub97c \uc798\ub77c\uc11c \ubd99\uc77c \ub54c \uc81c\ub300\ub85c \ub098\uc624\uc9c0 \uc54a\ub294\ub2e4\uba74?"},"content":{"rendered":"<h1>Span\uc774 \uc801\uc6a9\ub41c \ud14d\uc2a4\ud2b8\ub97c \uc798\ub77c\uc11c \ubd99\uc77c \ub54c \uc81c\ub300\ub85c \ub098\uc624\uc9c0 \uc54a\ub294\ub2e4\uba74?<\/h1>\n<p>Span\uc774 \uc801\uc6a9\ub41c \ud14d\uc2a4\ud2b8\ub97c \uc798\ub77c\uc11c \ubd99\uc5ec\uc57c \ud558\ub294 \uacbd\uc6b0\uac00 \uc788\ub2e4. \uc608\ub97c \ub4e4\uba74 \uc6d0\ubb38 \uc911\uac04\uc5d0 \uc0c8\ub85c\uc6b4 \ud14d\uc2a4\ud2b8\ub97c \uc0bd\uc785\ud558\uac70\ub098 \ud544\uc694\uc5c6\ub294 \ud14d\uc2a4\ud2b8\ub97c \uc81c\uac70\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\uac00 \uadf8\ub807\ub2e4. \ub098\uc758 \uacbd\uc6b0\ub3c4 \ubcc4\ubc18 \ub2e4\ub974\uc9c0 \uc54a\uc558\uae30 \ub54c\ubb38\uc5d0 Span\uc774 \uc801\uc6a9\ub418\uc5b4 \uc788\ub294 \ud14d\uc2a4\ud2b8\ub97c \uc790\ub978\ub4a4 \ub2e4\uc2dc \uc774\uc5b4 \ubd99\uc600\uc9c0\ub9cc \uc774\uc0c1\ud558\uac8c\ub3c4 \uc6d0\ud558\ub294\ub300\ub85c \ub098\uc624\uc9c0 \uc54a\uc558\ub2e4.<\/p>\n<h2>Span\uc774 \uc801\uc6a9\ub41c \ud14d\uc2a4\ud2b8\ub97c \uc798\ub77c\ubcf4\uc790<\/h2>\n<p><strong>ABC<\/strong>\ub77c\ub294 \ubb38\uc790\uc5f4\uc774 \uc788\ub2e4\uace0 \uac00\uc815\ud558\uc790. \uc774 \ubb38\uc790\uc5f4\uc744 <strong>A<\/strong>\uc640 <strong>BC<\/strong>\ub85c \uc790\ub978\ub4a4 \ub2e4\uc2dc \uc774\uc5b4\ubd99\uc774\uba74 \uc5b4\ub5bb\uac8c \ub420\uae4c?<\/p>\n<p><strong>ABC<\/strong>\ucd9c\ub825\ub418\uae38 \uae30\ub300\ud588\uc9c0\ub9cc, \uc2e4\uc81c \ucd9c\ub825\ub41c \uac83\uc740\u00a0<strong>A<\/strong>BC \ub2e4.\u00a0<\/p>\n<pre class=\"lang:null decode:true lang:\">val original = SpannableString(\"ABC\")\r\nval boldSpan = StyleSpan(Typeface.BOLD)\r\noriginal.setSpan(boldSpan, 0, original.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)\r\n\r\nval sequence1 = original.subSequence(0, 1)\r\ntv1.text = sequence1 \/\/A\r\n\r\nval sequence2 = original.subSequence(1, original.length)\r\ntv2.text = sequence2 \/\/BC\r\n\r\nval concatenated = TextUtils.concat(sequence1,sequence2)\r\ntv3.text = concatenated \/\/ABC<\/pre>\n<p><a href=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2020\/09\/www.charlezz.com-span-screenshot-1599118826936.jpg\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2020\/09\/www.charlezz.com-span-screenshot-1599118826936-498x1024.jpg\" alt=\"\" width=\"498\" height=\"1024\" class=\"aligncenter wp-image-44525 size-large\" srcset=\"https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2020\/09\/www.charlezz.com-span-screenshot-1599118826936-498x1024.jpg 498w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2020\/09\/www.charlezz.com-span-screenshot-1599118826936-146x300.jpg 146w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2020\/09\/www.charlezz.com-span-screenshot-1599118826936-768x1579.jpg 768w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2020\/09\/www.charlezz.com-span-screenshot-1599118826936.jpg 1440w\" sizes=\"(max-width: 498px) 100vw, 498px\" \/><\/a><\/p>\n<h2><\/h2>\n<h2>\ubb38\uc81c\uc758 \uc6d0\uc778<\/h2>\n<p>\uc798\ub77c\ub193\uc740 sequence1\uacfc sequence2\ub294 bold \uc18d\uc131\uc774 \ud45c\ud604\ub41c \uac83\uc744 \ud655\uc778 \ud560 \uc218 \uc788\ub2e4. \ud558\uc9c0\ub9cc \uc774 \ub458\uc744 \ud569\ucce4\uc744 \ub54c\ub294 A\ub9cc bold\uac00 \uc801\uc6a9\ub41c \ubaa8\uc2b5\uc744 \ud655\uc778\ud560 \uc218 \uc788\ub2e4.\u00a0<\/p>\n<p>SpannableString\uc744 subSequence() \uba54\uc11c\ub4dc\ub97c \ud1b5\ud574 \uc790\ub978 \uac01\uac01\uc758 \ub450 \uac1d\uccb4(sequence1, sequence2)\ub294 original \ub85c \ubd80\ud130 \ubb3c\ub824\ubc1b\uc740 <strong>\ub3d9\uc77c\ud55c StyleSpan(Bold) \uc778\uc2a4\ud134\uc2a4<\/strong>\ub97c \uac00\uc9c0\uace0 \uc788\uac8c \ub418\ub294\ub370, sequence1\ub97c sequence2\uc640 \ud569\uce60 \ub54c Span \ud50c\ub798\uadf8\uac00 Exclusive\ub85c \uc9c0\uc815 \ub418\uc5b4\uc788\uae30 \ub54c\ubb38\uc5d0 sequence1\uc5d0\uc11c bold\uac00 \uc801\uc6a9\ub418\uace0 \ub05d\ub098\ub294 \ubb38\uc81c\ub85c \ud30c\uc545\ub41c\ub2e4.<\/p>\n<h2>\ubb38\uc81c\uc758 \ud574\uacb0<\/h2>\n<p>\ub3d9\uc77c\ud55c span \uc778\uc2a4\ud134\uc2a4\ub97c \ub450 \uac1d\uccb4\uac00 \uac19\uc774 \ucc38\uc870\ud558\ub294 \uac83 \ubd80\ud130\uac00 \ubb38\uc81c\uc778 \uac83 \uac19\ub2e4. original\uc744 \ucabc\uac24 \ub54c original\uc5d0 \uc801\uc6a9\ub41c span\ub4e4\uc744 \ud30c\uc545\ud55c \ub4a4, \ub450 \uac1d\uccb4(sequence1, sequence2)\uc5d0 \uc0c8\ub85c\uc6b4 span \uc778\uc2a4\ud134\uc2a4\ub97c \ub611\uac19\uc774 \uc0dd\uc131\ud574\uc8fc\ub294 \ubc29\ubc95\uc744 \uc801\uc6a9\ud574\ubcf4\uc790.<\/p>\n<pre class=\"lang:null decode:true lang:\">\/**\r\n * @author Charlezz\r\n *\/\r\nobject SpanHelper {\r\n\r\n    fun subSequence(original: Spanned, start: Int, end: Int): SpannableString {\r\n        val result = SpannableString(original.subSequence(start, end))\r\n        result.clearSpans()\r\n\r\n        val spans = original.getSpans(\r\n            start,\r\n            end,\r\n            CharacterStyle::class.java\r\n        )\r\n        for (span in spans) {\r\n            val originalSpanStart = original.getSpanStart(span)\r\n            val originalSpanEnd = original.getSpanEnd(span)\r\n\r\n            val spanStart = max(originalSpanStart, start) - start\r\n            val spanEnd = min(originalSpanEnd - start, result.length)\r\n\r\n            result.setSpan(cloneSpan(span),\r\n                spanStart,\r\n                spanEnd,\r\n                Spanned.SPAN_EXCLUSIVE_EXCLUSIVE\r\n            )\r\n        }\r\n\r\n        return result\r\n    }\r\n\r\n    private fun cloneSpan(characterStyle: CharacterStyle): CharacterStyle {\r\n        if (characterStyle is StyleSpan) {\r\n            return StyleSpan(characterStyle.style)\r\n        } else if (...){ \/\/\uae30\ud0c0, \ucd94\uac00\ud558\uace0 \uc2f6\uc740 Span\uc744 \uc0dd\uc131\r\n            ...\r\n        }\r\n        return characterStyle\r\n    }\r\n}<\/pre>\n<pre class=\"lang: decode:true \">val original = SpannableString(\"ABC\")\r\nval boldSpan = StyleSpan(Typeface.BOLD)\r\noriginal.setSpan(boldSpan, 0, original.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)\r\n\r\nval sequence1 = SpanHelper.subSequence(original,0,1)\r\ntv1.text = sequence1 \/\/A\r\n\r\nval sequence2 = SpanHelper.subSequence(original,1, original.length)\r\ntv2.text = sequence2 \/\/BC\r\n\r\nval concatenated = TextUtils.concat(sequence1,sequence2)\r\ntv3.text = concatenated \/\/ABC<\/pre>\n<p><a href=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2020\/09\/www.charlezz.com-span-screenshot-1599121071986.jpg\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2020\/09\/www.charlezz.com-span-screenshot-1599121071986-498x1024.jpg\" alt=\"\" width=\"498\" height=\"1024\" class=\"aligncenter wp-image-44526 size-large\" srcset=\"https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2020\/09\/www.charlezz.com-span-screenshot-1599121071986-498x1024.jpg 498w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2020\/09\/www.charlezz.com-span-screenshot-1599121071986-146x300.jpg 146w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2020\/09\/www.charlezz.com-span-screenshot-1599121071986-768x1579.jpg 768w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2020\/09\/www.charlezz.com-span-screenshot-1599121071986.jpg 1440w\" sizes=\"(max-width: 498px) 100vw, 498px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Span\uc774 \uc801\uc6a9\ub41c \ud14d\uc2a4\ud2b8\ub97c \uc798\ub77c\uc11c \ubd99\uc77c \ub54c \uc81c\ub300\ub85c \ub098\uc624\uc9c0 \uc54a\ub294\ub2e4\uba74? Span\uc774 \uc801\uc6a9\ub41c \ud14d\uc2a4\ud2b8\ub97c \uc798\ub77c\uc11c \ubd99\uc5ec\uc57c \ud558\ub294 \uacbd\uc6b0\uac00 \uc788\ub2e4. \uc608\ub97c \ub4e4\uba74 \uc6d0\ubb38 \uc911\uac04\uc5d0 \uc0c8\ub85c\uc6b4 \ud14d\uc2a4\ud2b8\ub97c \uc0bd\uc785\ud558\uac70\ub098 \ud544\uc694\uc5c6\ub294 \ud14d\uc2a4\ud2b8\ub97c \uc81c\uac70\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\uac00 \uadf8\ub807\ub2e4. \ub098\uc758 \uacbd\uc6b0\ub3c4 \ubcc4\ubc18 \ub2e4\ub974\uc9c0 \uc54a\uc558\uae30 \ub54c\ubb38\uc5d0 Span\uc774 \uc801\uc6a9\ub418\uc5b4 \uc788\ub294 \ud14d\uc2a4\ud2b8\ub97c \uc790\ub978\ub4a4 \ub2e4\uc2dc \uc774\uc5b4 \ubd99\uc600\uc9c0\ub9cc \uc774\uc0c1\ud558\uac8c\ub3c4 \uc6d0\ud558\ub294\ub300\ub85c \ub098\uc624\uc9c0 \uc54a\uc558\ub2e4. Span\uc774 \uc801\uc6a9\ub41c [&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\/44524"}],"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=44524"}],"version-history":[{"count":1,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/44524\/revisions"}],"predecessor-version":[{"id":44527,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/44524\/revisions\/44527"}],"wp:attachment":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=44524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=44524"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=44524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}