{"id":1181,"date":"2016-01-29T22:22:16","date_gmt":"2016-01-29T14:22:16","guid":{"rendered":"https:\/\/ai.zhousir.top\/?p=1181"},"modified":"2026-08-18T12:58:47","modified_gmt":"2026-08-18T04:58:47","slug":"android%e5%bc%80%e5%8f%91%e7%9a%84%e9%82%a3%e4%ba%9b%e5%9d%91%e5%92%8c%e5%b0%8f%e6%8a%80%e5%b7%a7","status":"publish","type":"post","link":"https:\/\/ai.zhousir.top\/?p=1181","title":{"rendered":"Android\u5f00\u53d1\u7684\u90a3\u4e9b\u5751\u548c\u5c0f\u6280\u5de7"},"content":{"rendered":"<section id=\"wenyan\" style=\"font-family: system-ui, 'Apple Color Emoji', 'Segoe UI', 'Segoe UI Symbol', 'Noto Sans', Roboto, sans-serif; line-height: 1.75; font-size: 16px; color: #000000; caret-color: #000000;\" data-provider=\"WenYan\">\n<blockquote style=\"margin: 20px 0px; display: block; font-size: 0.9em; overflow: auto; border-left: 3px solid #ef7060; color: #6a737d; padding: 10px 10px 10px 20px; background: #fff9f9;\">\n<p style=\"margin: 1em 0px;\">Android \u65e5\u5e38\u5f00\u53d1\u91cc\u6709\u4e00\u6279\u53cd\u590d\u8e29\u7684\u5751\uff1aclipToPadding\u3001ListView \u7528 wrap_content\u3001ViewPager \u591a\u70b9\u89e6\u63a7\u3001item \u70b9\u4e0d\u4e2d\u3001getSupportFragmentManager \u548c getChildFragmentManager \u6df7\u7528\u3001ScrollView \u5d4c\u5957\u5217\u8868\u7b49\u3002\u4e0b\u6587\u6309\u6761\u76ee\u5217\u51fa\u95ee\u9898\u3001\u539f\u56e0\u548c\u53ef\u7528\u5199\u6cd5\uff0c\u793a\u4f8b\u4ee3\u7801\u5168\u90e8\u4fdd\u7559\u3002<\/p>\n<\/blockquote>\n<p><!--more--><\/p>\n<hr>\n<h2 style=\"margin: 1.2em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.3em; border-bottom: 2px solid #ef7060; display: flex;\"><span style=\"display: inline-block; font-weight: bold; background: #ef7060; color: #ffffff; padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;\">1\u3001android:clipToPadding<\/span><\/h2>\n<p style=\"margin: 1em 0px;\">\u610f\u601d\u662f\u63a7\u4ef6\u7684\u7ed8\u5236\u533a\u57df\u662f\u5426\u5728padding\u91cc\u9762\u3002\u9ed8\u8ba4\u4e3atrue\u3002\u5982\u679c\u4f60\u8bbe\u7f6e\u4e86\u6b64\u5c5e\u6027\u503c\u4e3afalse\uff0c\u5c31\u80fd\u5b9e\u73b0\u4e00\u4e2a\u5728\u5e03\u5c40\u4e0a\u4e8b\u534a\u529f\u966a\u7684\u6548\u679c\u3002\u5148\u770b\u4e00\u4e2a\u6548\u679c\u56fe\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u4e0a\u56fe\u4e2d\u7684ListView\u9876\u90e8\u9ed8\u8ba4\u6709\u4e00\u4e2a\u95f4\u8ddd\uff0c\u5411\u4e0a\u6ed1\u52a8\u540e\uff0c\u95f4\u8ddd\u6d88\u5931\uff0c\u5982\u4e0b\u56fe\u6240\u793a\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u5982\u679c\u4f7f\u7528margin\u6216padding\uff0c\u90fd\u4e0d\u80fd\u5b9e\u73b0\u8fd9\u4e2a\u6548\u679c\u3002\u52a0\u4e00\u4e2aheaderView\u53c8\u663e\u5f97\u5927\u6750\u5c0f\u7528\uff0c\u800c\u4e14\u8fc7\u4e8e\u9ebb\u70e6\u3002\u6b64\u5904\u7684clipToPadding\u914d\u5408paddingTop\u6548\u679c\u5c31\u521a\u521a\u597d\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u540c\u6837\uff0c\u8fd8\u6709\u53e6\u5916\u4e00\u4e2a\u5c5e\u6027\u4e5f\u5f88\u795e\u5947\uff1aandroid:clipChildren\uff0c\u5177\u4f53\u8bf7\u53c2\u8003\uff1a<a title=\"\u3010Android\u3011\u795e\u5947\u7684android:clipChildren\u5c5e\u6027\" href=\"http:\/\/www.cnblogs.com\/over140\/p\/3508335.html\" target=\"_blank\">\u3010Android\u3011\u795e\u5947\u7684android:clipChildren\u5c5e\u6027<\/a><\/p>\n<hr>\n<h2 style=\"margin: 1.2em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.3em; border-bottom: 2px solid #ef7060; display: flex;\"><span style=\"display: inline-block; font-weight: bold; background: #ef7060; color: #ffffff; padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;\">2\u3001match_parent\u548cwrap_content<\/span><\/h2>\n<p style=\"margin: 1em 0px;\">\u6309\u7406\u8bf4\u8fd9\u4e24\u4e2a\u5c5e\u6027\u4e00\u76ee\u4e86\u7136\uff0c\u4e00\u4e2a\u662f\u586b\u5145\u5e03\u5c40\u7a7a\u95f4\u9002\u5e94\u7236\u63a7\u4ef6\uff0c\u4e00\u4e2a\u662f\u9002\u5e94\u81ea\u8eab\u5185\u5bb9\u5927\u5c0f\u3002\u4f46\u5982\u679c\u5728\u5217\u8868\u5982ListView\u4e2d\uff0c\u7528\u9519\u4e86\u95ee\u9898\u5c31\u5927\u4e86\u3002ListView\u4e2d\u7684getView\u65b9\u6cd5\u9700\u8981\u8ba1\u7b97\u5217\u8868\u6761\u76ee\uff0c\u90a3\u5c31\u5fc5\u7136\u9700\u8981\u786e\u5b9aListView\u7684\u9ad8\u5ea6\uff0conMesure\u624d\u80fd\u505a\u6d4b\u91cf\u3002\u5982\u679c\u6307\u5b9a\u4e86wrap_content\uff0c\u5c31\u7b49\u4e8e\u544a\u8bc9\u7cfb\u7edf\uff0c\u5982\u679c\u6211\u6709\u4e00\u4e07\u4e2a\u6761\u76ee\uff0c\u4f60\u90fd\u5e2e\u6211\u8ba1\u7b97\u663e\u793a\u51fa\u6765\uff0c\u7136\u540e\u7cfb\u7edf\u6309\u7167\u4f60\u7684\u8981\u6c42\u5c31new\u4e86\u4e00\u4e07\u4e2a\u5bf9\u8c61\u51fa\u6765\u3002\u90a3\u4f60\u4e0d\u60b2\u5267\u4e86\uff1f\u5148\u770b\u4e00\u4e2a\u56fe\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u5047\u8bbe\u73b0\u5728ListView\u67098\u6761\u6570\u636e\uff0cmatch_parent\u9700\u8981new\u51fa7\u4e2a\u5bf9\u8c61\uff0c\u800cwrap_content\u5219\u9700\u89818\u4e2a\u3002\u8fd9\u91cc\u6d89\u53ca\u5230View\u7684\u91cd\u7528\uff0c\u5c31\u4e0d\u591a\u63a2\u8ba8\u4e86\u3002\u6240\u4ee5\u8fd9\u4e24\u4e2a\u5c5e\u6027\u7684\u8bbe\u7f6e\u5c06\u51b3\u5b9agetView\u7684\u8c03\u7528\u6b21\u6570\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u7531\u6b64\u518d\u5ef6\u4f38\u51fa\u53e6\u5916\u4e00\u4e2a\u95ee\u9898\uff1a<strong>getView\u88ab\u591a\u6b21\u8c03\u7528<\/strong>\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u4ec0\u4e48\u53eb\u591a\u6b21\u8c03\u7528\uff1f\u6bd4\u5982position=0\u5b83\u53ef\u80fd\u8c03\u7528\u4e86\u51e0\u6b21\u3002\u770b\u4f3c\u5f88\u8be1\u5f02\u5427\u3002GridView\u548cListView\u90fd\u6709\u53ef\u80fd\u51fa\u73b0\uff0c\u8bf4\u4e0d\u5b9a\u8fd9\u4e2a\u7978\u9996\u5c31\u662fwrap_content\u3002\u8bf4\u5230\u5e95\u662fView\u7684\u5e03\u5c40\u51fa\u73b0\u4e86\u95ee\u9898\u3002\u5982\u679c\u5d4c\u5957\u7684View\u8fc7\u4e8e\u590d\u6742\uff0c\u89e3\u51b3\u65b9\u6848\u53ef\u4ee5\u662f\u901a\u8fc7\u4ee3\u7801\u6d4b\u91cf\u5217\u8868\u6240\u9700\u8981\u7684\u9ad8\u5ea6\uff0c\u6216\u8005\u5728getView\u4e2d\u4f7f\u7528\u4e00\u4e2a\u5c0f\u6280\u5de7\uff1aparent.getChildCount == position<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-sy\">@<\/span><span class=\"crayon-e\">Override<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-m\">public<\/span> <span class=\"crayon-e\">View <\/span><span class=\"crayon-e\">getView<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span> <span class=\"crayon-v\">position<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-e\">View <\/span><span class=\"crayon-v\">convertView<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-e\">ViewGroup <\/span><span class=\"crayon-r\">parent<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">if<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-r\">parent<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">getChildCount<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-o\">==<\/span> <span class=\"crayon-v\">position<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-c\">\/\/ does things here<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">return<\/span> <span class=\"crayon-v\">convertView<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0 <\/span><span class=\"crayon-sy\">}<\/span><\/span><\/code><\/pre>\n<hr>\n<h2 style=\"margin: 1.2em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.3em; border-bottom: 2px solid #ef7060; display: flex;\"><span style=\"display: inline-block; font-weight: bold; background: #ef7060; color: #ffffff; padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;\">3\u3001IllegalArgumentException: pointerIndex out of range<\/span><\/h2>\n<p style=\"margin: 1em 0px;\">\u51fa\u73b0\u8fd9\u4e2aBug\u7684\u573a\u666f\u8fd8\u662f\u5f88\u65e0\u8bed\u7684\u3002\u4e00\u5f00\u59cb\u6211\u7528ViewPager + PhotoView(\u4e00\u4e2a\u5f00\u6e90\u63a7\u4ef6)\u663e\u793a\u56fe\u7247\uff0c\u5728\u591a\u70b9\u89e6\u63a7\u653e\u5927\u7f29\u5c0f\u65f6\u5c31\u51fa\u73b0\u4e86\u8fd9\u4e2a\u95ee\u9898\u3002\u4e00\u5f00\u59cb\u6211\u6000\u7591\u662fPhotoView\u7684bug\uff0c\u627e\u4e86\u534a\u5929\u65e0\u679c\u3002\u8981\u547d\u7684\u662f\u4e0d\u77e5\u5982\u4f55try\uff0c\u8001\u662fcrash\u3002\u540e\u6765\u624d\u77e5\u9053\u662fandroid\u9057\u7559\u4e0b\u6765\u7684bug\uff0c\u6e90\u7801\u91cc\u6ca1\u5bf9pointer index\u505a\u68c0\u67e5\u3002\u6539\u6e90\u7801\u91cd\u65b0\u7f16\u8bd1\u4e0d\u592a\u53ef\u80fd\u5427\u3002\u660e\u77e5\u6709exception\uff0c\u53c8\u4e0d\u80fd\u4ece\u6839\u672c\u4e0a\u89e3\u51b3\uff0c\u5982\u679c\u4e0d\u8ba9\u5b83crash\uff0c\u90a3\u5c31\u53ea\u80fdtry-catch\u4e86\u3002\u89e3\u51b3\u529e\u6cd5\u662f\uff1a\u81ea\u5b9a\u4e49\u4e00\u4e2aViewPager\u5e76\u7ee7\u627fViewPager\u3002\u8bf7\u770b\u4ee5\u4e0b\u4ee3\u7801\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-c\">\/**<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> * \u81ea\u5b9a\u4e49\u5c01\u88c5android.support.v4.view.ViewPager\uff0c\u91cd\u5199onInterceptTouchEvent\u4e8b\u4ef6\uff0c\u6355\u83b7\u7cfb\u7edf\u7ea7\u522b\u5f02\u5e38<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> *\/<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-m\">public<\/span> <span class=\"crayon-t\">class<\/span> <span class=\"crayon-e\">CustomViewPager<\/span> <span class=\"crayon-r\">extends<\/span> <span class=\"crayon-e\">ViewPager<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-m\">public<\/span> <span class=\"crayon-e\">CustomViewPager<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">Context <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-r\">this<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-t\">null<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-m\">public<\/span> <span class=\"crayon-e\">CustomViewPager<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">Context <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-e\">AttributeSet <\/span><span class=\"crayon-v\">attrs<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-r\">super<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">attrs<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">@<\/span><span class=\"crayon-e\">Override<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-e\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-m\">public<\/span> <span class=\"crayon-t\">boolean<\/span> <span class=\"crayon-e\">onInterceptTouchEvent<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">MotionEvent <\/span><span class=\"crayon-v\">ev<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">try<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">return<\/span> <span class=\"crayon-r\">super<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">onInterceptTouchEvent<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">ev<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span> <span class=\"crayon-st\">catch<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-i\">IllegalArgumentException<\/span> <span class=\"crayon-v\">e<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-v\">LogUtil<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">e<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">e<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span> <span class=\"crayon-st\">catch<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-i\">ArrayIndexOutOfBoundsException<\/span> <span class=\"crayon-v\">e<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-v\">LogUtil<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">e<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">e<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">return<\/span> <span class=\"crayon-t\">false<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-sy\">}<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u628a\u7528\u5230ViewPager\u7684\u5e03\u5c40\u6587\u4ef6\uff0c\u66ff\u6362\u6210CustomViewPager\u5c31OK\u4e86\u3002<\/p>\n<hr>\n<h2 style=\"margin: 1.2em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.3em; border-bottom: 2px solid #ef7060; display: flex;\"><span style=\"display: inline-block; font-weight: bold; background: #ef7060; color: #ffffff; padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;\">4\u3001ListView\u4e2ditem\u70b9\u51fb\u4e8b\u4ef6\u65e0\u54cd\u5e94<\/span><\/h2>\n<p style=\"margin: 1em 0px;\">listView\u7684Item\u70b9\u51fb\u4e8b\u4ef6\u7a81\u7136\u65e0\u54cd\u5e94\uff0c\u95ee\u9898\u4e00\u822c\u662f\u5728listView\u4e2d\u52a0\u5165\u4e86button\u3001checkbox\u7b49\u63a7\u4ef6\u540e\u51fa\u73b0\u7684\u3002\u8fd9\u4e2a\u95ee\u9898\u662f\u805a\u7126\u51b2\u7a81\u9020\u6210\u7684\u3002\u5728android\u91cc\u9762\uff0c\u70b9\u51fb\u5c4f\u5e55\u4e4b\u540e\uff0c\u70b9\u51fb\u4e8b\u4ef6\u4f1a\u6839\u636e\u4f60\u7684\u5e03\u5c40\u6765\u8fdb\u884c\u5206\u914d\u7684\uff0c\u5f53\u4f60\u7684listView\u91cc\u9762\u589e\u52a0\u4e86button\u4e4b\u540e\uff0c\u70b9\u51fb\u4e8b\u4ef6\u7b2c\u4e00\u4f18\u5148\u5206\u914d\u7ed9\u4f60listView\u91cc\u9762\u7684button\u3002\u6240\u4ee5\u4f60\u7684\u70b9\u51fbItem\u5c31\u5931\u6548\u4e86\uff0c\u8fd9\u4e2a\u65f6\u5019\u4f60\u5c31\u8981\u6839\u636e\u4f60\u7684\u9700\u6c42\uff0c\u662f\u7ed9\u4f60\u7684item\u7684\u6700\u5916\u5c42layout\u8bbe\u7f6e\u70b9\u51fb\u4e8b\u4ef6\uff0c\u8fd8\u662f\u7ed9\u4f60\u7684\u67d0\u4e2a\u5e03\u5c40\u5143\u7d20\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\u4e86\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u89e3\u51b3\u529e\u6cd5\uff1a\u5728ListView\u7684\u6839\u63a7\u4ef6\u4e2d\u8bbe\u7f6e\uff08\u82e5\u6839\u63a7\u4ef6\u662fLinearLayout, \u5219\u5728LinearLayout\u4e2d\u52a0\u5165\u4ee5\u4e0b\u5c5e\u6027\u8bbe\u7f6e\uff09descendantFocusability\u5c5e\u6027\u3002<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-v\">android<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">descendantFocusability<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"blocksDescendants\"<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u5b98\u65b9\u6587\u6863\u4e5f\u662f\u8fd9\u6837\u8bf4\u660e\u3002<\/p>\n<hr>\n<h2 style=\"margin: 1.2em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.3em; border-bottom: 2px solid #ef7060; display: flex;\"><span style=\"display: inline-block; font-weight: bold; background: #ef7060; color: #ffffff; padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;\">5\u3001getSupportFragmentManager()\u548cgetChildFragmentManager()<\/span><\/h2>\n<p style=\"margin: 1em 0px;\">\u6709\u4e00\u4e2a\u9700\u6c42\uff0cFragment\u9700\u8981\u5d4c\u59573\u4e2aFragment\u3002\u57fa\u672c\u4e0a\u53ef\u4ee5\u60f3\u5230\u7528ViewPager\u5b9e\u73b0\u3002\u5f00\u59cb\u4ee3\u7801\u662f\u8fd9\u6837\u5199\u7684\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-v\">mViewPager<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">setAdapter<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-r\">new<\/span> <span class=\"crayon-e\">CustomizeFragmentPagerAdapter<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">getActivity<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">getSupportFragmentManager<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">subFragmentList<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u5bfc\u81f4\u7684\u95ee\u9898\u662f\u5d4c\u5957\u7684Fragment\u6709\u65f6\u4f1a\u83ab\u540d\u5176\u5999\u4e0d\u663e\u793a\u3002\u5f00\u59cb\u6839\u672c\u4e0d\u77e5\u9053\u95ee\u9898\u51fa\u73b0\u5728\u54ea\uff0c\u5f53\u4f60\u4e0d\u77e5\u9053\u95ee\u9898\u7684\u539f\u56e0\u65f6\uff0c\u53bb\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u663e\u7136\u6bd4\u8f83\u9ebb\u70e6\u3002\u7ecf\u8fc7\u4e00\u6b21\u53c8\u4e00\u6b21\u7684\u5bfb\u5bfb\u89c5\u89c5\uff0c\u7ec8\u4e8e\u5728stackoverflow\u4e0a\u770b\u5230\u4e86\u540c\u6837\u7684\u63d0\u95ee\u3002\u8bf4\u662f\u7528getChildFragmentManager()\u5c31\u53ef\u4ee5\u4e86\u3002\u771f\u662f\u8fd9\u4e48\u795e\u5947\uff01<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-v\">mViewPager<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">setAdapter<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-r\">new<\/span> <span class=\"crayon-e\">CustomizeFragmentPagerAdapter<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">getChildFragmentManager<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">subFragmentList<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u8ba9\u6211\u4eec\u770b\u4e00\u4e0b\u8fd9\u4e24\u4e2a\u6709\u4ec0\u4e48\u533a\u522b\u3002\u9996\u5148\u662fgetSupportFragmentManager\uff08\u6216\u8005getFragmentManager\uff09\u7684\u8bf4\u660e\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-st\">Return<\/span> <span class=\"crayon-e\">the <\/span><span class=\"crayon-e\">FragmentManager <\/span><span class=\"crayon-st\">for<\/span> <span class=\"crayon-e\">interacting <\/span><span class=\"crayon-e\">with <\/span><span class=\"crayon-e\">fragments <\/span><span class=\"crayon-e\">associated <\/span><span class=\"crayon-e\">with <\/span><span class=\"crayon-r\">this<\/span> <span class=\"crayon-i\">fragment<\/span>'<span class=\"crayon-i\">s<\/span> <span class=\"crayon-v\">activity<\/span><span class=\"crayon-sy\">.<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u7136\u540e\u662fgetChildFragmentManager\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-st\">Return<\/span> <span class=\"crayon-i\">a<\/span> <span class=\"crayon-m\">private<\/span> <span class=\"crayon-e\">FragmentManager <\/span><span class=\"crayon-st\">for<\/span> <span class=\"crayon-e\">placing <\/span><span class=\"crayon-st\">and<\/span> <span class=\"crayon-e\">managing <\/span><span class=\"crayon-e\">Fragments <\/span><span class=\"crayon-e\">inside <\/span><span class=\"crayon-e\">of <\/span><span class=\"crayon-r\">this<\/span> <span class=\"crayon-v\">Fragment<\/span><span class=\"crayon-sy\">.<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">Basically, the difference is that Fragment\u2019s now have their own internal FragmentManager that can handle Fragments. The child FragmentManager is the one that handles Fragments contained within only the Fragment that it was added to. The other FragmentManager is contained within the entire Activity.<\/p>\n<p style=\"margin: 1em 0px;\">\u5df2\u7ecf\u8bf4\u5f97\u6bd4\u8f83\u660e\u767d\u4e86\u3002<\/p>\n<hr>\n<h2 style=\"margin: 1.2em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.3em; border-bottom: 2px solid #ef7060; display: flex;\"><span style=\"display: inline-block; font-weight: bold; background: #ef7060; color: #ffffff; padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;\">6\u3001ScrollView\u5d4c\u5957ListView<\/span><\/h2>\n<p style=\"margin: 1em 0px;\">\u8fd9\u6837\u7684\u8bbe\u8ba1\u662f\u4e0d\u662f\u5f88\u5947\u602a\uff1f\u4e24\u4e2a\u540c\u6837\u4f1a\u6eda\u52a8\u7684View\u5c45\u7136\u653e\u5230\u4e86\u4e00\u8d77\uff0c\u800c\u4e14\u8fd8\u662f\u5d4c\u5957\u7684\u5173\u7cfb\u3002\u66fe\u7ecf\u6709\u4e00\u4e2a\u8fd9\u6837\u7684\u9700\u6c42\uff1a\u754c\u9762\u4e00\u5171\u67094\u4e2a\u533a\u57df\u90e8\u5206\uff0c\u5206\u522b\u662f\u516c\u53f8\u57fa\u672c\u4fe1\u606f\uff08logo\u3001\u540d\u79f0\u3001\u6cd5\u4eba\u3001\u5730\u5740\uff09\u3001\u516c\u53f8\u7b80\u4ecb\u3001\u516c\u53f8\u8363\u8a89\u3001\u516c\u53f8\u53e3\u7891\u5217\u8868\u3002\u6bcf\u90e8\u5206\u5185\u5bb9\u90fd\u9700\u8981\u6839\u636e\u5185\u5bb9\u81ea\u9002\u5e94\u9ad8\u5ea6\uff0c\u4e0d\u80fd\u5199\u6b7b\u3002\u9119\u4eba\u9996\u5148\u60f3\u5230\u7684\u4e5f\u662f\u5916\u90e8\u7528\u4e00\u4e2aScrollView\u5305\u56f4\u8d77\u6765\u3002\u7136\u540e\u628a\u8fd94\u90e8\u5206\u5206\u522b\u75284\u4e2a\u81ea\u5b9a\u4e49\u63a7\u4ef6\u5c01\u88c5\u8d77\u6765\u3002\u57fa\u672c\u4fe1\u606f\u548c\u516c\u53f8\u7b80\u4ecb\u6bd4\u8f83\u7b80\u5355\uff0c\u8363\u8a89\u9700\u8981\u7528\u5230RecyclerView\u548cTextView\u7684\u7ec4\u5408\uff0cRecyclerView\uff08\u5f53\u7136\uff0c\u7528GridView\u4e5f\u53ef\u4ee5\uff0c3\u5217\u591a\u884c\u7684\u663e\u793a\uff09\u5b58\u653e\u8363\u8a89\u56fe\u7247\uff0cTextView\u663e\u793a\u8363\u8a89\u540d\u79f0\u3002\u6700\u540e\u4e00\u90e8\u5206\u53e3\u7891\u5217\u8868\u5f53\u7136\u662fListView\u4e86\u3002\u8fd9\u65f6\u5019\uff0c\u95ee\u9898\u5c31\u51fa\u6765\u4e86\u3002\u9700\u8981\u89e3\u51b3ListView\u653e\u5230ScrollView\u4e2d\u7684\u6ed1\u52a8\u95ee\u9898\u548cRecyclerView\u7684\u663e\u793a\u95ee\u9898\uff08\u5982\u679cRecyclerView\u7684\u9ad8\u5ea6\u6ca1\u6cd5\u8ba1\u7b97\uff0c\u4f60\u662f\u770b\u4e0d\u5230\u5185\u5bb9\u7684\uff09\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u5f53\u7136\uff0c\u7f51\u4e0a\u5df2\u7ecf\u6709\u7c7b\u4f3c\u7684\u63d0\u95ee\u548c\u89e3\u51b3\u65b9\u6848\u4e86\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u7ed9\u4e00\u4e2a\u7f51\u5740\uff1a<\/p>\n<p style=\"margin: 1em 0px;\"><a title=\"\u56db\u79cd\u65b9\u6848\u89e3\u51b3ScrollView\u5d4c\u5957ListView\u95ee\u9898\" href=\"http:\/\/bbs.anzhuo.cn\/thread-982250-1-1.html\" target=\"_blank\">\u56db\u79cd\u65b9\u6848\u89e3\u51b3ScrollView\u5d4c\u5957ListView\u95ee\u9898<\/a><\/p>\n<p style=\"margin: 1em 0px;\">ListView\u7684\u60c5\u51b5\u8fd8\u6bd4\u8f83\u597d\u89e3\u51b3\uff0c\u4f18\u96c5\u7684\u505a\u6cd5\u65e0\u975e\u5199\u4e00\u4e2a\u7c7b\u7ee7\u627fListView\uff0c\u7136\u540e\u91cd\u5199onMeasure\u65b9\u6cd5\u3002<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-sy\">@<\/span><span class=\"crayon-e\">Override <\/span><span class=\"crayon-m\">protected<\/span> <span class=\"crayon-t\">void<\/span> <span class=\"crayon-e\">onMeasure<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span> <span class=\"crayon-v\">widthMeasureSpec<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-t\">int<\/span> <span class=\"crayon-v\">heightMeasureSpec<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-t\">int<\/span> <span class=\"crayon-v\">expandSpec<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">MeasureSpec<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">makeMeasureSpec<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">Integer<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">MAX_VALUE<\/span> <span class=\"crayon-o\">&gt;&gt;<\/span> <span class=\"crayon-cn\">2<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">MeasureSpec<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">AT_MOST<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-r\">super<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">onMeasure<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">widthMeasureSpec<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">expandSpec<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-sy\">}<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">ListView\u53ef\u4ee5\u91cd\u5199onMeasure\u89e3\u51b3\uff0cRecyclerView\u91cd\u5199\u8fd9\u4e2a\u65b9\u6cd5\u662f\u884c\u4e0d\u901a\u7684\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u8bf4\u5230\u5e95\u5176\u5b9e\u8ba1\u7b97\u9ad8\u5ea6\u561b\u3002\u6709\u4e24\u79cd\u65b9\u5f0f\uff0c\u4e00\u79cd\u662f\u52a8\u6001\u8ba1\u7b97RecycleView\uff0c\u7136\u540e\u8bbe\u7f6esetLayoutParams\uff1b\u53e6\u5916\u4e00\u79cd\u8ddfListView\u7684\u89e3\u51b3\u65b9\u5f0f\u7c7b\u4f3c\uff0c\u5b9a\u4e49\u4e00\u4e2a\u7c7b\u7ee7\u627fLinearLayoutManager\u6216GridLayoutManager\uff08\u6ce8\u610f\uff1a\u53ef\u4e0d\u662f\u7ee7\u627fRecyclerView\uff09\uff0c\u91cd\u5199onMeasure\u65b9\u6cd5\uff08\u6b64\u65b9\u6cd5\u6bd4\u8f83\u9ebb\u70e6\uff0c\u6b64\u5904\u4e0d\u8868\uff0c\u4e0b\u6b21\u5199\u4e00\u7bc7\u6587\u7ae0\u518d\u4f5c\u4ecb\u7ecd\uff09\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u52a8\u6001\u8ba1\u7b97\u9ad8\u5ea6\u5982\u4e0b\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-t\">int<\/span> <span class=\"crayon-v\">heightPx<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">DensityUtil<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">dip2px<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">getActivity<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">imageHeight<\/span> <span class=\"crayon-o\">+<\/span> <span class=\"crayon-v\">imageRowHeight<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-o\">*<\/span> <span class=\"crayon-v\">lines<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-e\">MarginLayoutParams <\/span><span class=\"crayon-v\">mParams<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-r\">new<\/span> <span class=\"crayon-e\">MarginLayoutParams<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">LayoutParams<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">MATCH_PARENT<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">heightPx<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-v\">mParams<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">setMargins<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-v\">LinearLayout<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">LayoutParams <\/span><span class=\"crayon-v\">lParams<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-r\">new<\/span> <span class=\"crayon-v\">LinearLayout<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">LayoutParams<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">mParams<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-v\">honorImageRecyclerView<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">setLayoutParams<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">lParams<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u601d\u8def\u662f\u8fd9\u6837\u7684\uff1a\u670d\u52a1\u7aef\u8fd4\u56de\u8363\u8a89\u56fe\u7247\u540e\uff0c\u7531\u4e8e\u662f3\u5217\u663e\u793a\u7684\u65b9\u5f0f\uff0c\u53ea\u9700\u8981\u8ba1\u7b97\u9700\u8981\u663e\u793a\u51e0\u884c\uff0c\u7136\u540e\u7ed9\u5b9a\u884c\u95f4\u8ddd\u548c\u56fe\u7247\u7684\u9ad8\u5ea6\uff0c\u518d\u8bbe\u7f6esetLayoutParams\u5c31\u884c\u4e86\u3002<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-t\">int<\/span> <span class=\"crayon-v\">lines<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-v\">Math<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">ceil<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">totalImages<\/span> <span class=\"crayon-o\">\/<\/span> <span class=\"crayon-cn\">3d<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u81f3\u6b64\uff0c\u8fd9\u4e2a\u5947\u602a\u7684\u9700\u6c42\u5f97\u5230\u4e86\u89e3\u51b3\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u53ef\u662f\u5728\u6ed1\u52a8\u7684\u65f6\u5019\uff0c\u611f\u89c9\u51fa\u73b0\u5361\u987f\u7684\u73b0\u8c61\u3002\u806a\u660e\u7684\u4f60\u80af\u5b9a\u60f3\u5230\u662f\u6ed1\u52a8\u51b2\u7a81\u4e86\u3002\u5e94\u8be5\u662fScrollView\u7684\u6ed1\u52a8\u5e72\u6270\u5230\u4e86ListView\u7684\u6ed1\u52a8\u3002\u600e\u4e48\u529e\u5462\uff1f\u80fd\u4e0d\u80fd\u7981\u6389ScrollView\u7684\u6ed1\u52a8\uff1f<\/p>\n<p style=\"margin: 1em 0px;\">\u767e\u5ea6\u4e00\u4e0b\uff0c\u4f60\u80af\u5b9a\u80fd\u641c\u7d22\u5230\u7b54\u6848\u7684\u3002\u5148\u4e0a\u4ee3\u7801\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-c\">\/**<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> * @author Leo<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> * <\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> *\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Created in 2015-9-12<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> *\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u62e6\u622aScrollView\u6ed1\u52a8\u4e8b\u4ef6<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> *\/<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-m\">public<\/span> <span class=\"crayon-t\">class<\/span> <span class=\"crayon-e\">CustomScrollView<\/span> <span class=\"crayon-r\">extends<\/span> <span class=\"crayon-e\">ScrollView<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-m\">private<\/span> <span class=\"crayon-t\">int<\/span> <span class=\"crayon-v\">downY<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-m\">private<\/span> <span class=\"crayon-t\">int<\/span> <span class=\"crayon-v\">touchSlop<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-m\">public<\/span> <span class=\"crayon-e\">CustomScrollView<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">Context <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-r\">this<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-t\">null<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-m\">public<\/span> <span class=\"crayon-e\">CustomScrollView<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">Context <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-e\">AttributeSet <\/span><span class=\"crayon-v\">attrs<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-r\">this<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">attrs<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-m\">public<\/span> <span class=\"crayon-e\">CustomScrollView<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">Context <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-e\">AttributeSet <\/span><span class=\"crayon-v\">attrs<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-t\">int<\/span> <span class=\"crayon-v\">defStyleAttr<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-r\">super<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">attrs<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">defStyleAttr<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-v\">touchSlop<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">ViewConfiguration<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">get<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">getScaledTouchSlop<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">@<\/span><span class=\"crayon-e\">Override<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-e\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-m\">public<\/span> <span class=\"crayon-t\">boolean<\/span> <span class=\"crayon-e\">onInterceptTouchEvent<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-i\">MotionEvent<\/span> <span class=\"crayon-v\">e<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-t\">int<\/span> <span class=\"crayon-v\">action<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">e<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">getAction<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">switch<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">action<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">case<\/span> <span class=\"crayon-v\">MotionEvent<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">ACTION_DOWN<\/span><span class=\"crayon-o\">:<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-v\">downY<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-v\">e<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">getRawY<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">break<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">case<\/span> <span class=\"crayon-v\">MotionEvent<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">ACTION_MOVE<\/span><span class=\"crayon-o\">:<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-t\">int<\/span> <span class=\"crayon-v\">moveY<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-t\">int<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-v\">e<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">getRawY<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">if<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">Math<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">abs<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">moveY<\/span> <span class=\"crayon-o\">-<\/span> <span class=\"crayon-v\">downY<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-v\">touchSlop<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">return<\/span> <span class=\"crayon-t\">true<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">return<\/span> <span class=\"crayon-r\">super<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">onInterceptTouchEvent<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">e<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-sy\">}<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u53ea\u8981\u7406\u89e3\u4e86getScaledTouchSlop()\u8fd9\u4e2a\u65b9\u6cd5\u5c31\u597d\u529e\u4e86\u3002\u8fd9\u4e2a\u65b9\u6cd5\u7684\u6ce8\u91ca\u662f\uff1aDistance in pixels a touch can wander before we think the user is scrolling\u3002\u8bf4\u8fd9\u662f\u4e00\u4e2a\u8ddd\u79bb\uff0c\u8868\u793a\u6ed1\u52a8\u7684\u65f6\u5019\uff0c\u624b\u7684\u79fb\u52a8\u8981\u5927\u4e8e\u8fd9\u4e2a\u8ddd\u79bb\u624d\u5f00\u59cb\u79fb\u52a8\u63a7\u4ef6\uff0c\u5982\u679c\u5c0f\u4e8e\u6b64\u8ddd\u79bb\u5c31\u4e0d\u89e6\u53d1\u79fb\u52a8\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u770b\u4f3c\u5f88\u5b8c\u7f8e\u4e86\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u4f46\u662f\u8fd8\u6709\u53e6\u5916\u4e00\u4e2a\u95ee\u9898\uff1a\u6211\u6bcf\u6b21\u52a0\u8f7d\u8fd9\u4e2a\u754c\u9762\u82b1\u7684\u65f6\u95f4\u592a\u957f\u4e86\uff0c\u6bcf\u6b21\u7531\u5176\u5b83\u754c\u9762\u542f\u52a8\u8fd9\u4e2a\u754c\u9762\u65f6\uff0c\u90fd\u8981\u5361\u4e0a1~2\u79d2\uff0c\u800c\u4e14\u56e0\u624b\u673a\u6027\u80fd\u65f6\u95f4\u4e0d\u7b49\u3002\u5e76\u4e0d\u662f\u7531\u4e8e\u7f51\u7edc\u8bf7\u6c42\uff0c\u53d6\u6570\u636e\u7531\u5b50\u7ebf\u7a0b\u505a\uff0c\u8ddfUI\u7ebf\u7a0b\u6beb\u65e0\u5173\u7cfb\u3002\u8fd9\u6837\u7684\u4f53\u9a8c\u81ea\u5df1\u770b\u4e86\u90fd\u5f88\u4e0d\u723d\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u51e0\u5929\u8fc7\u53bb\u4e86\uff0c\u8fd8\u662f\u90a3\u6837\u3002\u9a6c\u4e0a\u8981\u7ed9\u8001\u677f\u6f14\u793a\u4e86\u3002\u8fd9\u6837\u7684\u4f53\u9a8c\u8981\u88ab\u9a82\u5341\u6b21\u5440\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u96be\u9053\u8ddfScrollView\u7684\u5d4c\u5957\u6709\u5173\uff1f<\/p>\n<p style=\"margin: 1em 0px;\">\u597d\u5427\uff0c\u90a3\u6211\u91cd\u6784\u4ee3\u7801\u3002\u4e0d\u7528ScrollView\u4e86\u3002\u76f4\u63a5\u7528\u4e00\u4e2aListView\uff0c\u7136\u540eadd\u4e00\u4e2aheaderView\u5b58\u653e\u5176\u5b83\u5185\u5bb9\u3002\u56e0\u4e3a\u63a7\u4ef6\u5c01\u88c5\u5f97\u8fd8\u7b97\u597d\uff0c\u6ca1\u6539\u591a\u5c11\u5e03\u5c40\u5c31OK\u4e86\uff0c\u4e00\u8fd0\u884c\uff0c\u6d41\u7545\u987a\u6ed1\uff0c\u4e00\u5207\u8fce\u5203\u800c\u89e3\uff01<\/p>\n<p style=\"margin: 1em 0px;\">\u672c\u6765\u5c31\u662f\u8fd9\u4e48\u7b80\u5355\u7684\u95ee\u9898\uff0c\u4e3a\u4ec0\u4e48\u975e\u5f97\u7528ScrollView\u5d4c\u5957\u5462\uff1f<\/p>\n<p style=\"margin: 1em 0px;\">stackoverflow\u65e9\u5c31\u544a\u8bc9\u4f60\u4e86\uff0c\u4e0d\u8981\u8fd9\u6837\u5d4c\u5957\uff01\u4e0d\u8981\u8fd9\u6837\u5d4c\u5957\uff01\u4e0d\u8981\u8fd9\u6837\u5d4c\u5957\uff01\u91cd\u8981\u7684\u4e8b\u60c5\u8bf4\u4e09\u904d\u3002<\/p>\n<p style=\"margin: 1em 0px;\"><a title=\"ListView inside ScrollView is not scrolling on Android\" href=\"http:\/\/stackoverflow.com\/questions\/6210895\/listview-inside-scrollview-is-not-scrolling-on-android\" target=\"_blank\">ListView inside ScrollView is not scrolling on Android<\/a><\/p>\n<p style=\"margin: 1em 0px;\">\u5f53\u7136\uff0c\u4eceandroid 5.0 Lollipop\u5f00\u59cb\u63d0\u4f9b\u4e86\u4e00\u79cd\u65b0\u7684API\u652f\u6301\u5d4c\u5165\u6ed1\u52a8\uff0c\u6b64\u65f6\uff0c\u8ba9\u50cf\u8fd9\u6837\u7684\u9700\u6c42\u4e5f\u80fd\u5f88\u597d\u5b9e\u73b0\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u6b64\u5904\u7ed9\u4e00\u4e2a\u7f51\u5740\uff0c\u5927\u5bb6\u6709\u5174\u8da3\u81ea\u884c\u4e86\u89e3\uff0c\u6b64\u5904\u4e0d\u518d\u8ba8\u8bba\u3002<\/p>\n<p style=\"margin: 1em 0px;\"><a title=\"Android NestedScrolling \u5b9e\u6218\" href=\"http:\/\/www.race604.com\/android-nested-scrolling\/\" target=\"_blank\">Android NestedScrolling \u5b9e\u6218<\/a><\/p>\n<hr>\n<h2 style=\"margin: 1.2em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.3em; border-bottom: 2px solid #ef7060; display: flex;\"><span style=\"display: inline-block; font-weight: bold; background: #ef7060; color: #ffffff; padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;\">7\u3001EmojiconTextView\u7684setText(null)<\/span><\/h2>\n<p style=\"margin: 1em 0px;\">\u8fd9\u662f\u5f00\u6e90\u8868\u60c5\u5e93com.rockerhieu.emojicon\u4e2d\u7684TextView\u52a0\u5f3a\u7248\u3002\u76f8\u4fe1\u5f88\u591a\u4eba\u7528\u5230\u8fc7\u8fd9\u4e2a\u5f00\u6e90\u5de5\u5177\u5305\u3002TextView\u7528setText(null)\u5b8c\u5168\u6ca1\u95ee\u9898\u3002\u4f46EmojiconTextView setText(null)\u540e\u5c31\u60b2\u5267\u4e86\uff0c\u76f4\u63a5crash\uff0c\u663e\u793a\u7684\u662fnull pointer\u3002\u5f00\u59cb\u6211\u6000\u7591\u65f6\u8fd9\u4e2aview\u6ca1\u521d\u59cb\u5316\uff0c\u4f46\u5e76\u4e0d\u662f\u3002\u90a3\u5c31\u8c03\u8bd5\u4e00\u4e0b\u5457\u3002<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-sy\">@<\/span><span class=\"crayon-e\">Override<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-m\">public<\/span> <span class=\"crayon-t\">void<\/span> <span class=\"crayon-e\">setText<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">CharSequence <\/span><span class=\"crayon-v\">text<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-e\">BufferType <\/span><span class=\"crayon-v\">type<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-e\">SpannableStringBuilder <\/span><span class=\"crayon-v\">builder<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-r\">new<\/span> <span class=\"crayon-e\">SpannableStringBuilder<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">text<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-v\">EmojiconHandler<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">addEmojis<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">getContext<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">builder<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">mEmojiconSize<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-r\">super<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">setText<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">builder<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">type<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-sy\">}<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">EmojiconTextView\u4e2d\u7684setText\u770b\u6765\u6ca1\u4ec0\u4e48\u95ee\u9898\u3002\u70b9SpannableStringBuilder\u8fdb\u53bb\u770b\u770b\uff0c\u6e90\u7801\u539f\u6765\u662f\u8fd9\u6837\u7684\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-c\">\/**<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> * Create a new SpannableStringBuilder containing a copy of the<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> * specified text, including its spans if any.<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> *\/<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-m\">public<\/span> <span class=\"crayon-e\">SpannableStringBuilder<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">CharSequence <\/span><span class=\"crayon-v\">text<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-r\">this<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">text<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">text<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">length<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-sy\">}<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u597d\u5427\u3002\u95ee\u9898\u5df2\u7ecf\u627e\u5230\u4e86\uff0ctext.length()\uff0c\u4e0d\u7a7a\u6307\u9488\u624d\u602a\u3002<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-v\">text<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">text<\/span> <span class=\"crayon-o\">==<\/span> <span class=\"crayon-t\">null<\/span> <span class=\"crayon-sy\">?<\/span> <span class=\"crayon-s\">\"\"<\/span> <span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">text<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-e\">SpannableStringBuilder <\/span><span class=\"crayon-v\">builder<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-r\">new<\/span> <span class=\"crayon-e\">SpannableStringBuilder<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">text<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u52a0\u4e00\u884c\u5224\u65ad\u5c31\u884c\u4e86\u3002<\/p>\n<hr>\n<h2 style=\"margin: 1.2em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.3em; border-bottom: 2px solid #ef7060; display: flex;\"><span style=\"display: inline-block; font-weight: bold; background: #ef7060; color: #ffffff; padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;\">8\u3001cursor.close()<\/span><\/h2>\n<p style=\"margin: 1em 0px;\">\u4e00\u822c\u6765\u8bf4\uff0cdatabase\u7684\u5f00\u548c\u5173\u4e0d\u592a\u4f1a\u5fd8\u8bb0\uff0c\u4f46\u6e38\u6807\u7684\u4f7f\u7528\u53ef\u80fd\u5e76\u4e0d\u4f1a\u5f15\u8d77\u592a\u591a\u91cd\u89c6\uff0c\u5c24\u5176\u662f\u6e38\u6807\u7684\u968f\u610f\u4f7f\u7528\u3002\u6bd4\u5982\u7528ContentResolver\u7ed3\u5408Cursor\u67e5\u8be2SD\u5361\u4e2d\u56fe\u7247\uff0c\u5f88\u5bb9\u6613\u5199\u51fa\u4ee5\u4e0b\u7684\u4ee3\u7801\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-e\">Cursor <\/span><span class=\"crayon-v\">cursor<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">contentResolver<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">query<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">uri<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-t\">null<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">MediaStore<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">Images<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">Media<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">MIME_TYPE<\/span> <span class=\"crayon-o\">+<\/span> <span class=\"crayon-s\">\"=? or \"<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-o\">+<\/span> <span class=\"crayon-v\">MediaStore<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">Images<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">Media<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">MIME_TYPE<\/span> <span class=\"crayon-o\">+<\/span> <span class=\"crayon-s\">\"=?\"<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-r\">new<\/span> <span class=\"crayon-t\">String<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-sy\">]<\/span> <span class=\"crayon-sy\">{<\/span> <span class=\"crayon-s\">\"image\/jpeg\"<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-s\">\"image\/png\"<\/span> <span class=\"crayon-sy\">}<\/span><span class=\"crayon-sy\">,<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-v\">MediaStore<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">Images<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">Media<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">DATE_MODIFIED<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-st\">while<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">cursor<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">moveToNext<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-c\">\/\/ TODO\u00a0\u00a0\u00a0\u00a0 <\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-sy\">}<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">cursor\u90fd\u4e0d\u505a\u975e\u7a7a\u5224\u65ad\uff0c\u800c\u4e14\u5f80\u5f80\u5728\u5173\u95ed\u6e38\u6807\u7684\u65f6\u5019\u4e0d\u6ce8\u610f\u6709\u53ef\u80fd\u5f02\u5e38\u629b\u51fa\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u4ee5\u524d\u5728\u9879\u76ee\u4e2d\uff0c\u7ecf\u5e38\u51fa\u73b0\u7531\u4e8e\u6e38\u6807\u6ca1\u53ca\u65f6\u5173\u95ed\u6216\u5173\u95ed\u51fa\u5f02\u5e38\u6ca1\u5904\u7406\u597d\u5bfc\u81f4\u5176\u5b83\u7684\u95ee\u9898\u4ea7\u751f\uff0c\u800c\u4e14\u95ee\u9898\u770b\u8d77\u6765\u975e\u5e38\u7684\u8be1\u5f02\uff0c\u4e0d\u597d\u89e3\u51b3\u3002\u540e\u6765\uff0c\u6211\u628a\u6574\u4e2a\u9879\u76ee\u4e2d\u6709\u5173\u6e38\u6807\u7684\u4f7f\u7528\u91cd\u6784\u4e00\u904d\uff0c\u540e\u6765\u5c31\u518d\u6ca1\u53d1\u751f\u8fc7\u7c7b\u4f3c\u7684\u95ee\u9898\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u539f\u5219\u5f88\u7b80\u5355\uff0c\u6240\u6709Cursor\u7684\u58f0\u660e\u4e3a\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-e\">Cursor <\/span><span class=\"crayon-v\">cursor<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-t\">null<\/span><span class=\"crayon-sy\">;<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u4e14\u653e\u5728try-catch\u5916\u9762\uff1b\u9700\u8981\u7528\u5230cursor\uff0c\u5148\u505a\u975e\u7a7a\u5224\u65ad\u3002\u7136\u540e\u5728\u65b9\u6cd5\u7684\u6700\u540e\u7528\u4e00\u4e2a\u5de5\u5177\u7c7b\u5904\u7406\u6e38\u6807\u7684\u5173\u95ed\u3002<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-c\">\/**<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> * @author Leo<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> * <\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> *\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Created in 2015-9-15<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\"> *\/<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-m\">public<\/span> <span class=\"crayon-t\">class<\/span> <span class=\"crayon-e\">IOUtil<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-m\">private<\/span> <span class=\"crayon-e\">IOUtil<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-m\">public<\/span> <span class=\"crayon-m\">static<\/span> <span class=\"crayon-t\">void<\/span> <span class=\"crayon-e\">closeQuietly<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">Closeable <\/span><span class=\"crayon-v\">closeable<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">if<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">closeable<\/span> <span class=\"crayon-o\">!=<\/span> <span class=\"crayon-t\">null<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">try<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-v\">closeable<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">close<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span> <span class=\"crayon-st\">catch<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-i\">Throwable<\/span> <span class=\"crayon-v\">e<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-m\">public<\/span> <span class=\"crayon-m\">static<\/span> <span class=\"crayon-t\">void<\/span> <span class=\"crayon-e\">closeQuietly<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">Cursor <\/span><span class=\"crayon-v\">cursor<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">if<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">cursor<\/span> <span class=\"crayon-o\">!=<\/span> <span class=\"crayon-t\">null<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">try<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-v\">cursor<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">close<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span> <span class=\"crayon-st\">catch<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-i\">Throwable<\/span> <span class=\"crayon-v\">e<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-sy\">}<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u6211\u60f3\uff0c\u8fd9\u6837\u5c31\u6ca1\u5fc5\u8981\u5728\u6bcf\u4e2a\u5730\u65b9\u90fdtry-catch-finally\u4e86\u3002<\/p>\n<hr>\n<h2 style=\"margin: 1.2em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.3em; border-bottom: 2px solid #ef7060; display: flex;\"><span style=\"display: inline-block; font-weight: bold; background: #ef7060; color: #ffffff; padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;\">9\u3001java.lang.String cannot be converted to JSONObject<\/span><\/h2>\n<p style=\"margin: 1em 0px;\">\u89e3\u6790\u670d\u52a1\u7aef\u8fd4\u56de\u7684JSON\u5b57\u7b26\u4e32\u65f6\uff0c\u5c45\u7136\u629b\u51fa\u4e86\u8fd9\u4e2a\u5f02\u5e38\u3002\u8c03\u8bd5\u6ca1\u53d1\u73b0\u4efb\u4f55\u95ee\u9898\uff0c\u770b\u8d77\u6765\u662f\u6b63\u5e38\u7684JSON\u683c\u5f0f\u3002\u540e\u6765\u53d1\u73b0\u5c45\u7136\u662fJSON\u4e32\u591a\u4e86BOM\uff08Byte Order Mark\uff09\u3002\u670d\u52a1\u7aef\u7684\u4ee3\u7801\u7531PHP\u5b9e\u73b0\uff0c\u6709\u65f6\u5f00\u53d1\u4e3a\u4e86\u4fee\u6539\u65b9\u4fbf\uff0c\u76f4\u63a5\u7528windows\u8bb0\u4e8b\u672c\u6253\u5f00\u4fdd\u5b58\uff0c\u5f15\u5165\u4e86\u4eba\u773c\u770b\u4e0d\u5230\u7684\u95ee\u9898\u3002\u5176\u5b9e\u5c31\u662f\u591a\u4e86\u201dufeff\u201d\u8fd9\u4e2a\u73a9\u610f\uff0c\u5ba2\u6237\u7aef\u4ee3\u7801\u8fc7\u6ee4\u4e00\u4e0b\u5c31\u884c\u4e86\u3002<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-c\">\/\/ in case: Value of type java.lang.String cannot be converted to JSONObject<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-c\">\/\/ Remove the BOM header<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-st\">if<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">jsonStr<\/span> <span class=\"crayon-o\">!=<\/span> <span class=\"crayon-t\">null<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-v\">jsonStr<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">jsonStr<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">trim<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-st\">if<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">jsonStr<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">startsWith<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">\"ufeff\"<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-v\">jsonStr<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">jsonStr<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">substring<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-sy\">}<\/span><\/span>\n<span class=\"crayon-line\"><span class=\"crayon-sy\">}<\/span><\/span><\/code><\/pre>\n<hr>\n<h2 style=\"margin: 1.2em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.3em; border-bottom: 2px solid #ef7060; display: flex;\"><span style=\"display: inline-block; font-weight: bold; background: #ef7060; color: #ffffff; padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;\">10\u3001Shape round rect too large to be rendered into a texture<\/span><\/h2>\n<p style=\"margin: 1em 0px;\">\u5706\u5f62\u77e9\u5f62\u592a\u5927\uff1f<\/p>\n<p style=\"margin: 1em 0px;\">\u4e00\u5f00\u59cb\u6211\u53d1\u73b0\u4e00\u4e2aacitivity\u4e2d\u7684scrollView\u6ed1\u52a8\u4e00\u987f\u4e00\u987f\u7684\uff0c\u800c\u5b9e\u9645\u4e0a\u6ca1\u6709\u5d4c\u5957\u4efb\u4f55\u7684\u5217\u8868\u63a7\u4ef6\u5982ListView\u3001GridView\uff0c\u5305\u542b\u7684\u65e0\u975e\u662f\u4e00\u4e9bTextView\u3001ImagView\u7b49\u3002\u770b\u4e86\u4e0bEclipse\u4e2dlog\u8f93\u51fa\uff0c\u53d1\u73b0\u51fa\u73b0\u4e86\u8fd9\u4e2awarn\u7ea7\u522b\u7684\u63d0\u793a\u3002\u96be\u9053\u662f\u6211\u5728\u5916\u5c42\u5d4c\u5957\u4e86\u8fd9\u4e2a\u5706\u5f62\u77e9\u5f62\uff1f\u6211\u5728\u5f88\u591a\u5730\u65b9\u90fd\u7528\u4e86\u5440\uff0c\u4e3a\u4f55\u5c31\u8fd9\u4e2a\u754c\u9762\u51fa\u73b0\u95ee\u9898\u4e86\uff1f<\/p>\n<p style=\"margin: 1em 0px;\">\u540e\u6765\u624d\u53d1\u73b0\uff0c\u8fd9\u4e2a\u5706\u5f62\u77e9\u5f62\u5305\u542b\u7684\u5185\u5bb9\u592a\u591a\u4e86\uff0c\u5df2\u7ecf\u8d85\u51fa\u4e86\u624b\u673a\u7684\u9ad8\u5ea6\uff0c\u800c\u4e14\u53ef\u4ee5\u6ed1\u597d\u51e0\u9875\u3002<\/p>\n<p style=\"margin: 1em 0px;\">StackOverFlow\u4e0a\u6709\u4eba\u8bf4\uff1aThe easiest solution is to get rid of the rounded corners. If you remove the rounded corners and use a simple rectangle, the hardware renderer will no longer create a single large texture for the background layer, and won\u2019t run into the texture size limit any more.<\/p>\n<p style=\"margin: 1em 0px;\">\u4e5f\u6709\u5efa\u8bae\uff1ato draw onto the canvas.<\/p>\n<p style=\"margin: 1em 0px;\">\u5177\u4f53\u94fe\u63a5\uff1a<a title=\"How Do Solve Shape round rect too large to be rendered into a texture\" href=\"http:\/\/stackoverflow.com\/questions\/14519025\/how-do-solve-shape-round-rect-too-large-to-be-rendered-into-a-texture-in-android\" target=\"_blank\">How Do Solve Shape round rect too large to be rendered into a texture<\/a><\/p>\n<p style=\"margin: 1em 0px;\">\u6211\u8bd5\u4e86\u4e0b\u81ea\u5b9a\u4e49\u63a7\u4ef6LinearLayout\uff0c\u901a\u8fc7canvas\u8fdb\u884cdraw\uff0c\u6ca1\u80fd\u89e3\u51b3\u3002\u53bb\u6389radius\u5c5e\u6027\u786e\u5b9e\u53ef\u884c\uff0c\u53ef\u6211\u60f3\u4fdd\u7559\u600e\u4e48\u529e\uff1f<\/p>\n<p style=\"margin: 1em 0px;\">\u8fd8\u6709\u4e00\u4e2a\u89e3\u51b3\u529e\u6cd5\uff0c\u901a\u8fc7\u5728androidManifest.xml\u4e2d\u7981\u7528\u786c\u4ef6\u52a0\u901f\uff0c\u4e3a\u4e86\u63a7\u5236\u7c92\u5ea6\uff0c\u6211\u53ea\u5728\u6b64activity\u4e2d\u7981\u7528\u6b64\u529f\u80fd\u3002<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 10px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 10px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"crayon-line\"><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-e\">activity <\/span><span class=\"crayon-v\">android<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">hardwareaccelerated<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"false\"<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-o\">&gt;<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u5148\u60f3\u5230\u8fd9\u4e48\u591a\uff0c\u4ee5\u540e\u518d\u8865\u5145\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u53c2\u8003\uff1a<\/p>\n<p style=\"margin: 1em 0px;\"><a title=\"android:clipToPadding\u548candroid:clipChildren\" href=\"http:\/\/www.alloyteam.com\/2014\/10\/androidcliptopadding-he-androidclipchildren\/\" target=\"_blank\">android:clipToPadding\u548candroid:clipChildren<\/a><\/p>\n<p style=\"margin: 1em 0px;\"><a title=\"HowTo: ListView, Adapter, getView and different list items\u2019 layouts in one ListView\" href=\"http:\/\/android.amberfog.com\/?p=296\" target=\"_blank\">HowTo: ListView, Adapter, getView and different list items\u2019 layouts in one ListView<\/a><\/p>\n<p style=\"margin: 1em 0px;\"><a title=\"android ListView \u5728\u521d\u59cb\u5316\u65f6\u591a\u6b21\u8c03\u7528getView()\u539f\u56e0\u5206\u6790\" href=\"http:\/\/www.cnblogs.com\/linjzong\/p\/3494090.html\" target=\"_blank\">android ListView \u5728\u521d\u59cb\u5316\u65f6\u591a\u6b21\u8c03\u7528getView()\u539f\u56e0\u5206\u6790<\/a><\/p>\n<p style=\"margin: 1em 0px;\"><a title=\"java.lang.IllegalArgumentException: pointerIndex out of range Exception - dispatchTouchEvent\" href=\"http:\/\/stackoverflow.com\/questions\/16459196\/java-lang-illegalargumentexception-pointerindex-out-of-range-exception-dispat\" target=\"_blank\">java.lang.IllegalArgumentException: pointerIndex out of range Exception \u2013 dispatchTouchEvent<\/a><\/p>\n<p style=\"margin: 1em 0px;\"><a title=\"What is difference between getSupportFragmentManager() and getChildFragmentManager()?\" href=\"http:\/\/stackoverflow.com\/questions\/14740445\/what-is-difference-between-getsupportfragmentmanager-and-getchildfragmentmanag\" target=\"_blank\">What is difference between getSupportFragmentManager() and getChildFragmentManager()?<\/a><\/p>\n<p style=\"margin: 1em 0px;\">\u539f\u6587\u51fa\u5904\uff1a <a href=\"http:\/\/www.cnblogs.com\/lao-liang\/p\/4941653.html\" target=\"_blank\">LeoLiang<\/a><\/p>\n<blockquote style=\"margin: 20px 0px; display: block; font-size: 0.9em; overflow: auto; border-left: 3px solid #ef7060; color: #6a737d; padding: 10px 10px 10px 20px; background: #fff9f9;\">\n<p style=\"margin: 1em 0px;\"><strong>\u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u5e03\u5c40\u5c5e\u6027\u548c\u5217\u8868\u590d\u7528\u5148\u5bf9\u9f50\uff0c\u518d\u5904\u7406\u89e6\u6478\u3001Fragment \u5c42\u7ea7\u548c\u5d4c\u5957\u6eda\u52a8\uff1b\u786c\u4ef6\u52a0\u901f\u3001Cursor \u548c JSON \u89e3\u6790\u8fd9\u4e9b\u8fb9\u89d2\u4e5f\u8981\u5355\u72ec\u515c\u4f4f\u3002<\/strong><\/p>\n<\/blockquote>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Android \u65e5\u5e38\u5f00\u53d1\u91cc\u6709\u4e00\u6279\u53cd\u590d\u8e29\u7684\u5751\uff1aclipToPadding\u3001ListView \u7528 wrap_con [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[45],"tags":[],"_links":{"self":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/1181"}],"collection":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1181"}],"version-history":[{"count":3,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/1181\/revisions"}],"predecessor-version":[{"id":2157,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/1181\/revisions\/2157"}],"wp:attachment":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}