Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
390
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 31.43 KB | None | 0 0
  1. Error: Could not parse CSS stylesheet
  2.     at exports.evaluateStylesheet (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/jsdom/lib/jsdom/living/helpers/stylesheets.js:23:21)
  3.     at HTMLStyleElementImpl._childTextContentChangeSteps (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/jsdom/lib/jsdom/living/nodes/HTMLStyleElement-impl.js:20:5)
  4.     at TextImpl.replaceData (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/jsdom/lib/jsdom/living/nodes/CharacterData-impl.js:73:23)
  5.     at TextImpl.set data [as data] (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/jsdom/lib/jsdom/living/nodes/CharacterData-impl.js:21:10)
  6.     at JSDOMParse5Adapter.insertText (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/jsdom/lib/jsdom/browser/parse5-adapter-parsing.js:115:22)
  7.     at module.exports.Parser._insertCharacters (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/parse5/lib/parser/index.js:558:26)
  8.     at Object.insertCharacters (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/parse5/lib/parser/index.js:1014:7)
  9.     at module.exports.Parser._processToken (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/parse5/lib/parser/index.js:607:38)
  10.     at module.exports.Parser._processInputToken (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/parse5/lib/parser/index.js:639:14)
  11.     at module.exports.Parser._runParsingLoop (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/parse5/lib/parser/index.js:409:14)
  12.     at module.exports.Parser.parse (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/parse5/lib/parser/index.js:322:10)
  13.     at Object.parse (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/parse5/lib/index.js:11:19)
  14.     at HTMLToDOM._parseWithParse5 (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/jsdom/lib/jsdom/browser/htmltodom.js:43:19)
  15.     at HTMLToDOM._doParse (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/jsdom/lib/jsdom/browser/htmltodom.js:27:42)
  16.     at HTMLToDOM.appendToDocument (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/jsdom/lib/jsdom/browser/htmltodom.js:23:17)
  17.     at new JSDOM (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/jsdom/lib/api.js:67:29)
  18.     at /Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/lib/filter.js:71:21
  19.     at tryCatcher (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/bluebird/js/release/util.js:16:23)
  20.     at Promise._settlePromiseFromHandler (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/bluebird/js/release/promise.js:512:31)
  21.     at Promise._settlePromise (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/bluebird/js/release/promise.js:569:18)
  22.     at Promise._settlePromise0 (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/bluebird/js/release/promise.js:614:10)
  23.     at Promise._settlePromises (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/bluebird/js/release/promise.js:693:18)
  24.     at Promise._fulfill (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/bluebird/js/release/promise.js:638:18)
  25.     at Promise._resolveCallback (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/bluebird/js/release/promise.js:432:57)
  26.     at Promise._settlePromiseFromHandler (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/bluebird/js/release/promise.js:524:17)
  27.     at Promise._settlePromise (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/bluebird/js/release/promise.js:569:18)
  28.     at Promise._settlePromise0 (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/bluebird/js/release/promise.js:614:10)
  29.     at Promise._settlePromises (/Users/wafer/Documents/wafer-li.github.io/node_modules/hexo-filter-optimize/node_modules/bluebird/js/release/promise.js:693:18) </code> 下添加一个 <code><item></code> 即可。</p><p>例如:</p><figure class="highlight xml"><table><tbody><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div></pre></td><td class="code"><pre><div class="line"><span class="tag"><<span class="name">style</span> <span class="attr">name</span>=<span class="string">"AppTheme.Base"</span> <span class="attr">parent</span>=<span class="string">"Theme.AppCompat"</span>></span><span class="undefined"></span></div><div class="line"><span class="xml">  <span class="tag"><<span class="name">item</span> <span class="attr">name</span>=<span class="string">"windowActionBar"</span>></span>false<span class="tag"></<span class="name">item</span>></span></span></div><div class="line"><span class="xml">  <span class="tag"><<span class="name">item</span> <span class="attr">name</span>=<span class="string">"android:windowNoTitle"</span>></span>true<span class="tag"></<span class="name">item</span>></span></span></div><div class="line"><span class="xml">  <span class="comment"><!-- Actionbar color --></span></span></div><div class="line"><span class="xml">  <span class="tag"><<span class="name">item</span> <span class="attr">name</span>=<span class="string">"colorPrimary"</span>></span>@color/accent_material_dark<span class="tag"></<span class="name">item</span>></span></span></div><div class="line"><span class="xml">  <span class="comment"><!--Status bar color--></span></span></div><div class="line"><span class="xml">  <span class="tag"><<span class="name">item</span> <span class="attr">name</span>=<span class="string">"colorPrimaryDark"</span>></span>@color/accent_material_light<span class="tag"></<span class="name">item</span>></span></span></div><div class="line"><span class="xml">  <span class="comment"><!--Window color--></span></span></div><div class="line"><span class="xml">  <span class="tag"><<span class="name">item</span> <span class="attr">name</span>=<span class="string">"android:windowBackground"</span>></span>@color/dim_foreground_material_dark<span class="tag"></<span class="name">item</span>></span></span></div><div class="line"><span class="undefined"></span><span class="tag"></<span class="name">style</span>></span></div></pre></td></tr></tbody></table></figure><p>可以设定的属性有:</p><ul><li><code>App bar</code> : 即原来 <code>ActionBar</code> 的底色,通过添加 <code>colorPrimary</code> 属性即可。</li><li><code>navigationBarColor</code> : 此为导航栏底色,仅在 <strong>API 21 以上</strong> 才有效, 必须设置在 <code>res/values-v21/style.xml</code></li><li><code>windowBackground</code> : 主视窗底色。</li></ul><p><img src="https://www.jcodecraeer.com/uploads/20141118/14162849281137.png" alt="Style"></p><h3 id="14-设置控件"><a class="markdownIt-Anchor" href="#14-设置控件"></a> 1.4 设置控件</h3><p>一般来说 ,<code>Toolbar</code> 有以下控件</p><p><img src="https://www.jcodecraeer.com/uploads/20141118/1416285884351.png" alt="Component"></p><p>有关的代码如下,文件为 <code>Activity</code> 的对应 <code>.java</code> 文件 <code>MainAcitivity.java</code></p><figure class="highlight java"><table><tbody><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div></pre></td><td class="code"><pre><div class="line">Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);</div><div class="line"></div><div class="line"><span class="comment">// App Logo</span></div><div class="line">toolbar.setLogo(R.drawable.ic_launcher);</div><div class="line"><span class="comment">// Title</span></div><div class="line">toolbar.setTitle(<span class="string">"My Title"</span>);</div><div class="line"><span class="comment">// Sub Title</span></div><div class="line">toolbar.setSubtitle(<span class="string">"Sub title"</span>);</div><div class="line"></div><div class="line">setSupportActionBar(toolbar);</div><div class="line"></div><div class="line"><span class="comment">// Navigation Icon 要设定在 setSupoortActionBar 之后才有作用</span></div><div class="line"><span class="comment">// 否則會出現 back button</span></div><div class="line">toolbar.setNavigationIcon(R.drawable.ab_android);</div></pre></td></tr></tbody></table></figure><p>菜单部分:</p><ol><li><p>先在相应的<code>menu</code> 文件设置<code>MenuItem</code> <code>res/menu/menu_main.xml</code></p><figure class="highlight xml"><table><tbody><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div></pre></td><td class="code"><pre><div class="line"><span class="tag"><<span class="name">menu</span> <span class="attr">xmlns:android</span>=<span class="string">"http://schemas.android.com/apk/res/android"</span></span></div><div class="line"><span class="tag">      <span class="attr">xmlns:app</span>=<span class="string">"http://schemas.android.com/apk/res-auto"</span></span></div><div class="line"><span class="tag">      <span class="attr">xmlns:tools</span>=<span class="string">"http://schemas.android.com/tools"</span></span></div><div class="line"><span class="tag">      <span class="attr">tools:context</span>=<span class="string">".MainActivity"</span>></span></div><div class="line"></div><div class="line">  <span class="tag"><<span class="name">item</span> <span class="attr">android:id</span>=<span class="string">"@+id/action_edit"</span></span></div><div class="line"><span class="tag">        <span class="attr">android:title</span>=<span class="string">"@string/action_edit"</span></span></div><div class="line"><span class="tag">        <span class="attr">android:orderInCategory</span>=<span class="string">"80"</span></span></div><div class="line"><span class="tag">        <span class="attr">android:icon</span>=<span class="string">"@drawable/ab_edit"</span></span></div><div class="line"><span class="tag">        <span class="attr">app:showAsAction</span>=<span class="string">"ifRoom"</span> /></span></div><div class="line"></div><div class="line">  <span class="tag"><<span class="name">item</span> <span class="attr">android:id</span>=<span class="string">"@+id/action_share"</span></span></div><div class="line"><span class="tag">        <span class="attr">android:title</span>=<span class="string">"@string/action_edit"</span></span></div><div class="line"><span class="tag">        <span class="attr">android:orderInCategory</span>=<span class="string">"90"</span></span></div><div class="line"><span class="tag">        <span class="attr">android:icon</span>=<span class="string">"@drawable/ab_share"</span></span></div><div class="line"><span class="tag">        <span class="attr">app:showAsAction</span>=<span class="string">"ifRoom"</span> /></span></div><div class="line"></div><div class="line">  <span class="tag"><<span class="name">item</span> <span class="attr">android:id</span>=<span class="string">"@+id/action_settings"</span></span></div><div class="line"><span class="tag">        <span class="attr">android:title</span>=<span class="string">"@string/action_settings"</span></span></div><div class="line"><span class="tag">        <span class="attr">android:orderInCategory</span>=<span class="string">"100"</span></span></div><div class="line"><span class="tag">        <span class="attr">app:showAsAction</span>=<span class="string">"never"</span>/></span></div><div class="line"><span class="tag"></<span class="name">menu</span>></span></div></pre></td></tr></tbody></table></figure></li><li><p><code>java</code> 文件中设定 <code>OnMenuItemClickListener</code></p><figure class="highlight java"><table><tbody><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div></pre></td><td class="code"><pre><div class="line"><span class="keyword">private</span> Toolbar.OnMenuItemClickListener onMenuItemClick = <span class="keyword">new</span> Toolbar.OnMenuItemClickListener() {</div><div class="line">   <span class="meta">@Override</span></div><div class="line"> <span class="function"><span class="keyword">public</span> <span class="keyword">boolean</span> <span class="title">onMenuItemClick</span><span class="params">(MenuItem menuItem)</span> </span>{</div><div class="line">      String msg = <span class="string">""</span>;</div><div class="line">        <span class="keyword">switch</span> (menuItem.getItemId()) {</div><div class="line">            <span class="keyword">case</span> R.id.action_edit:</div><div class="line">             msg += <span class="string">"Click edit"</span>;</div><div class="line">                <span class="keyword">break</span>;</div><div class="line">         <span class="keyword">case</span> R.id.action_share:</div><div class="line">        msg += <span class="string">"Click share"</span>;</div><div class="line">               <span class="keyword">break</span>;</div><div class="line">         <span class="keyword">case</span> R.id.action_settings:</div><div class="line">             msg += <span class="string">"Click settings"</span>;</div><div class="line">                <span class="keyword">break</span>;</div><div class="line">     }</div><div class="line"></div><div class="line">       <span class="keyword">if</span>(!msg.equals(<span class="string">""</span>)) {</div><div class="line">          Toast.makeText(MainActivity.<span class="keyword">this</span>, msg, Toast.LENGTH_SHORT).show();</div><div class="line">     }</div><div class="line">       <span class="keyword">return</span> <span class="keyword">true</span>;</div><div class="line">  }</div><div class="line">};</div><div class="line"></div><div class="line"><span class="comment">// 将 Listener 传给设置方法</span></div><div class="line"><span class="comment">// 其实也可以使用匿名类构造</span></div><div class="line">toolbar.setOnMenuItemClickListener(onMenuItemClick)</div></pre></td></tr></tbody></table></figure><blockquote><p>需要注意的是,<code>setOnMenuItemClickListener()</code> 需要在 <code>setActionBar()</code><code>setSupportActionBar()</code> 之后才能生效</p></blockquote></li></ol><h2 id="2-动态加载"><a class="markdownIt-Anchor" href="#2-动态加载"></a> 2. 动态加载</h2><p>这里所指的是 在使用 <code>Fragment</code> 时,由于不同 <code>Fragment</code> 可能需要不同的 <code>ActionBar</code> 标题或者其他组件,由此产生的动态加载问题。</p><h3 id="21-动态更改标题"><a class="markdownIt-Anchor" href="#21-动态更改标题"></a> 2.1 动态更改标题</h3><p><code>Title</code> 需要根据 <code>Fragment</code> 的内容进行动态加载,<strong>不要直接使用 Toolbar 的</strong> <code>setTitle()</code>,而应该使用 <code>getActionBar()</code> 来进行标题更改。</p><blockquote><p>由于 Android Studio 会自动产生 Warning,认为 <code>getActionBar()</code> 有可能返回一个空值,可以使用 <code>assert</code> 来进行断言,说明其不会返回 <code>null</code></p></blockquote><figure class="highlight java"><table><tbody><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line"><span class="comment">// 此处断言用于取消 Warnning,</span></div><div class="line"><span class="comment">// 但必须保证已经 setActionBar(toolbar);</span></div><div class="line"><span class="function"><span class="keyword">assert</span> <span class="title">getActionBar</span><span class="params">()</span> !</span>= <span class="keyword">null</span>;</div><div class="line">getActionBar().setTitle(<span class="string">"需要的标题"</span>);</div></pre></td></tr></tbody></table></figure><h3 id="22-动态加载-menuitem"><a class="markdownIt-Anchor" href="#22-动态加载-menuitem"></a> 2.2 动态加载 MenuItem</h3><p>需要动态加载 <code>MenuItem</code> 时,应该在各个 <code>Fragment</code> 重载 <code>onCreateOptionsMenu()</code> 方法。</p><figure class="highlight java"><table><tbody><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line"><span class="meta">@Override</span></div><div class="line"><span class="function"><span class="keyword">public</span> <span class="keyword">void</span> <span class="title">onCreateOptionsMenu</span><span class="params">(Menu menu, MenuInflater inflater)</span> </span>{</div><div class="line">        inflater.inflate(R.menu.pictrue_list, menu);</div><div class="line">        <span class="keyword">super</span>.onCreateOptionsMenu(menu,inflater);</div><div class="line">}</div></pre></td></tr></tbody></table></figure><p>同时,需要在 <code>Fragment</code><code>onCreate()</code> 方法中添加 <code>setHasOptionMenu(true)</code>,指明 <code>Fragment</code> 应显示菜单并对菜单进行响应。</p><figure class="highlight java"><table><tbody><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div></pre></td><td class="code"><pre><div class="line"><span class="meta">@Override</span></div><div class="line"><span class="function"><span class="keyword">public</span> <span class="keyword">void</span> <span class="title">onCreate</span><span class="params">(Bundle savedInstanceState)</span> </span>{</div><div class="line">    <span class="comment">// TODO Auto-generated method stub</span></div><div class="line">    <span class="keyword">super</span>.onCreate(savedInstanceState);</div><div class="line">    setHasOptionsMenu(<span class="keyword">true</span>);    <span class="comment">// 必须添加,否则无法显示 menu</span></div><div class="line">}</div></pre></td></tr></tbody></table></figure><p>需要注意的是, <strong><code>Fragment</code> 会自动继承 <code>Activity</code> 已经 inflate 的 <code>MenuItem</code></strong>,所以如果 <code>Fragment</code> 需要一个全新的 <code>MenuItem</code> 那就最好<strong>重新 inflate 新的 xml</strong></p><blockquote><p>否则,MenuItem 将会重复出现,而且其点击事件也会同时在 <code>Activity</code><code>Fragment</code> 中得到响应</p></blockquote></div><div><ul class="post-copyright"><li class="post-copyright-author"><strong>本文作者:</strong> Wafer Li</li><li class="post-copyright-link"><strong>本文链接:</strong> <a href="https://wafer.li/Android/ToolBar/" title="ToolBar">https://wafer.li/Android/ToolBar/</a></li><li class="post-copyright-license"><strong>版权声明: </strong>本博客所有文章除特别声明外,均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" rel="external nofollow" target="_blank">CC BY-NC-SA 4.0</a> 许可协议。转载请注明出处!</li></ul></div><footer class="post-footer"><div class="post-tags"><a href="/tags/Android/" rel="tag"># Android</a></div><div class="post-nav"><div class="post-nav-next post-nav-item"><a href="/Kotlin/Kotlin lateinit vs lazy/" rel="next" title="Kotlin lateinit vs lazy"><i class="fa fa-chevron-left"></i> Kotlin lateinit vs lazy</a></div><span class="post-nav-divider"></span><div class="post-nav-prev post-nav-item"><a href="/DHT/Consistent Hash/" rel="prev" title="Consistent Hash">Consistent Hash <i class="fa fa-chevron-right"></i></a></div></div></footer></div></article><div class="post-spread"></div></div></div><div class="comments" id="comments"><div id="disqus_thread"><noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript></div></div></div><div class="sidebar-toggle"><div class="sidebar-toggle-line-wrap"><span class="sidebar-toggle-line sidebar-toggle-line-first"></span> <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span> <span class="sidebar-toggle-line sidebar-toggle-line-last"></span></div></div><aside id="sidebar" class="sidebar"><div class="sidebar-inner"><ul class="sidebar-nav motion-element"><li class="sidebar-nav-toc sidebar-nav-active" data-target="post-toc-wrap">文章目录</li><li class="sidebar-nav-overview" data-target="site-overview-wrap">站点概览</li></ul><section class="site-overview-wrap sidebar-panel"><div class="site-overview"><div class="site-author motion-element" itemprop="author" itemscope="" itemtype="http://schema.org/Person"><img class="site-author-image" itemprop="image" src="/images/avatar.jpg" alt="Wafer Li"><p class="site-author-name" itemprop="name">Wafer Li</p><p class="site-description motion-element" itemprop="description"></p></div><nav class="site-state motion-element"><div class="site-state-item site-state-posts"><a href="/archives/"><span class="site-state-item-count">193</span> <span class="site-state-item-name">日志</span></a></div><div class="site-state-item site-state-categories"><a href="/categories/index.html"><span class="site-state-item-count">49</span> <span class="site-state-item-name">分类</span></a></div><div class="site-state-item site-state-tags"><a href="/tags/index.html"><span class="site-state-item-count">64</span> <span class="site-state-item-name">标签</span></a></div></nav><div class="feed-link motion-element"><a href="/atom.xml" rel="alternate"><i class="fa fa-rss"></i> RSS</a></div><div class="links-of-author motion-element"><span class="links-of-author-item"><a href="https://github.com/wafer-li" target="_blank" title="GitHub"><i class="fa fa-fw fa-github"></i>GitHub</a> </span><span class="links-of-author-item"><a href="mailto:omyshokami@gmail.com" target="_blank" title="E-Mail"><i class="fa fa-fw fa-envelope"></i>E-Mail</a></span></div><div class="cc-license motion-element" itemprop="license"><a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" class="cc-opacity" target="_blank"><img src="/images/cc-by-nc-sa.svg" alt="Creative Commons"></a></div></div></section><section class="post-toc-wrap motion-element sidebar-panel sidebar-panel-active"><div class="post-toc"><div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#1-使用"><span class="nav-text">1. 使用</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#12-添加组件到界面"><span class="nav-text">1.2 添加组件到界面</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#13-自定义颜色等其他属性"><span class="nav-text">1.3 自定义颜色等其他属性</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#14-设置控件"><span class="nav-text">1.4 设置控件</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#2-动态加载"><span class="nav-text">2. 动态加载</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#21-动态更改标题"><span class="nav-text">2.1 动态更改标题</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#22-动态加载-menuitem"><span class="nav-text">2.2 动态加载 MenuItem</span></a></li></ol></li></ol></div></div></section></div></aside></div></main><footer id="footer" class="footer"><div class="footer-inner"><div class="copyright">© 2016 — <span itemprop="copyrightYear">2018</span> <span class="with-love"><i class="fa fa-user"></i> </span><span class="author" itemprop="copyrightHolder">Wafer Li</span> <span class="post-meta-divider">|</span> <span class="post-meta-item-icon"><i class="fa fa-area-chart"></i> </span><span class="post-meta-item-text">站点总字数:</span> <span title="站点总字数">506k</span> <span class="post-meta-divider">|</span> <span class="post-meta-item-icon"><i class="fa fa-coffee"></i> </span><span class="post-meta-item-text">站点总阅读时间:</span> <span title="站点总阅读时间">7:40</span></div><div class="powered-by">由 <a class="theme-link" target="_blank" href="https://hexo.io">Hexo</a> 强力驱动</div><span class="post-meta-divider">|</span><div class="theme-info">主题 — <a class="theme-link" target="_blank" href="https://github.com/theme-next/hexo-theme-next">NexT.Pisces</a> v6.0.1</div></div></footer><div class="back-to-top"><i class="fa fa-arrow-up"></i> <span id="scrollpercent"><span>0</span>%</span></div></div><script type="text/javascript" src="/js/bundle.js"></script><script type="text/javascript">"[object Function]"!==Object.prototype.toString.call(window.Promise)&&(window.Promise=null)</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.2.5/jquery.fancybox.min.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/canvas-nest.js/1.0.1/canvas-nest.min.js"></script><script id="dsq-count-scr" src="https://wafer-li.disqus.com/count.js" async></script><script type="text/javascript">var disqus_config=function(){this.page.url="https://wafer.li/Android/ToolBar/",this.page.identifier="/Android/ToolBar/",this.page.title="ToolBar"};function loadComments(){var o=document,t=o.createElement("script");t.src="https://wafer-li.disqus.com/embed.js",t.setAttribute("data-timestamp",""+ +new Date),(o.head||o.body).appendChild(t)}$(function(){var o=$("#comments").offset().top-$(window).height();o<=0?loadComments():$(window).on("scroll.disqus_scroll",function(){document.documentElement.scrollTop>=o&&($(window).off(".disqus_scroll"),loadComments())})})</script><script type="text/javascript">function proceedsearch(){$("body").append('<div class="search-popup-overlay local-search-pop-overlay"></div>').css("overflow","hidden"),$(".search-popup-overlay").click(onPopupClose),$(".popup").toggle();var t=$("#local-search-input");t.attr("autocapitalize","none"),t.attr("autocorrect","off"),t.focus()}var isfetched=!1,isXml=!0,search_path="search.xml";0===search_path.length?search_path="search.xml":/json$/i.test(search_path)&&(isXml=!1);var path="/"+search_path,onPopupClose=function(t){$(".popup").hide(),$("#local-search-input").val(""),$(".search-result-list").remove(),$("#no-result").remove(),$(".local-search-pop-overlay").remove(),$("body").css("overflow","")},searchFunc=function(t,e,o){"use strict";$("body").append('<div class="search-popup-overlay local-search-pop-overlay"><div id="search-loading-icon"><i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i></div></div>').css("overflow","hidden"),$("#search-loading-icon").css("margin","20% auto 0 auto").css("text-align","center"),$.ajax({url:t,dataType:isXml?"xml":"json",async:!0,success:function(t){isfetched=!0,$(".popup").detach().appendTo(".header-inner");var n=isXml?$("entry",t).map(function(){return{title:$("title",this).text(),content:$("content",this).text(),url:$("url",this).text()}}).get():t,r=document.getElementById(e),s=document.getElementById(o);r.addEventListener("input",function(){var t=r.value.trim().toLowerCase(),e=t.split(/[\s\-]+/);e.length>1&&e.push(t);var o=[];if(t.length>0&&n.forEach(function(n){function r(e,o,n,r){for(var s=r[r.length-1],a=s.position,i=s.word,l=[],h=0;a+i.length<=n&&0!=r.length;){i===t&&h++,l.push({position:a,length:i.length});var p=a+i.length;for(r.pop();0!=r.length&&(a=(s=r[r.length-1]).position,i=s.word,p>a);)r.pop()}return c+=h,{hits:l,start:o,end:n,searchTextCount:h}}function s(t,e){var o="",n=e.start;return e.hits.forEach(function(e){o+=t.substring(n,e.position);var r=e.position+e.length;o+='<b class="search-keyword">'+t.substring(e.position,r)+"</b>",n=r}),o+=t.substring(n,e.end)}var a=!1,i=0,c=0,l=n.title.trim(),h=l.toLowerCase(),p=n.content.trim().replace(/<[^>]+>/g,""),u=p.toLowerCase(),f=decodeURIComponent(n.url),d=[],g=[];if(""!=l&&(e.forEach(function(t){function e(t,e,o){var n=t.length;if(0===n)return[];var r=0,s=[],a=[];for(o||(e=e.toLowerCase(),t=t.toLowerCase());(s=e.indexOf(t,r))>-1;)a.push({position:s,word:t}),r=s+n;return a}d=d.concat(e(t,h,!1)),g=g.concat(e(t,u,!1))}),(d.length>0||g.length>0)&&(a=!0,i=d.length+g.length)),a){[d,g].forEach(function(t){t.sort(function(t,e){return e.position!==t.position?e.position-t.position:t.word.length-e.word.length})});var v=[];0!=d.length&&v.push(r(0,0,l.length,d));for(var $=[];0!=g.length;){var C=g[g.length-1],m=C.position,x=C.word,w=m-20,y=m+80;0>w&&(w=0),y<m+x.length&&(y=m+x.length),y>p.length&&(y=p.length),$.push(r(0,w,y,g))}$.sort(function(t,e){return t.searchTextCount!==e.searchTextCount?e.searchTextCount-t.searchTextCount:t.hits.length!==e.hits.length?e.hits.length-t.hits.length:t.start-e.start});var T=parseInt("1");T>=0&&($=$.slice(0,T));var b="";b+=0!=v.length?"<li><a href='"+f+"' class='search-result-title'>"+s(l,v[0])+"</a>":"<li><a href='"+f+"' class='search-result-title'>"+l+"</a>",$.forEach(function(t){b+="<a href='"+f+'\'><p class="search-result">'+s(p,t)+"...</p></a>"}),b+="</li>",o.push({item:b,searchTextCount:c,hitCount:i,id:o.length})}}),1===e.length&&""===e[0])s.innerHTML='<div id="no-result"><i class="fa fa-search fa-5x" /></div>';else if(0===o.length)s.innerHTML='<div id="no-result"><i class="fa fa-frown-o fa-5x" /></div>';else{o.sort(function(t,e){return t.searchTextCount!==e.searchTextCount?e.searchTextCount-t.searchTextCount:t.hitCount!==e.hitCount?e.hitCount-t.hitCount:e.id-t.id});var a='<ul class="search-result-list">';o.forEach(function(t){a+=t.item}),a+="</ul>",s.innerHTML=a}}),$(".local-search-pop-overlay").remove(),$("body").css("overflow",""),proceedsearch()}})};$(".popup-trigger").click(function(t){t.stopPropagation(),!1===isfetched?searchFunc(path,"local-search-input","local-search-result"):proceedsearch()}),$(".popup-btn-close").click(onPopupClose),$(".popup").click(function(t){t.stopPropagation()}),$(document).on("keyup",function(t){27===t.which&&$(".search-popup").is(":visible")&&onPopupClose()})</script><script src="https://cdnjs.cloudflare.com/ajax/libs/pangu/3.3.0/pangu.min.js"></script><script type="text/javascript">pangu.spacingPage()</script><script type="text/javascript">bookmark.scrollToMark("auto")</script></body></html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement