<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[waft-ui组件的学习和测试 - picker，switch和card]]></title><description><![CDATA[<p dir="auto">接着之前waft-UI中组件的测试，本次继续测试picker，switch和card。</p>
<h3>1.  picker组件的学习</h3>
<p dir="auto">Waft-UI中提供了picker组件，picker组件是一个两级的列表选择组件，我们可以通过调用这个组件构造一个选择器。</p>
<p dir="auto"><strong>1.1 组件的调用方法</strong></p>
<p dir="auto">在index.json中增加button组件的引用，方法为：</p>
<pre><code>{
 "usingComponents": {
       "x-picker": "waft-ui/assembly/picker/picker"
  }
}
</code></pre>
<p dir="auto"><strong>1.2picker的显示</strong></p>
<p dir="auto">在index.axml文件中，增加显示脚本。</p>
<pre><code>&lt;view class="flex"&gt;
        &lt;x-picker
            show="{{showPicker}}"
           pickerData="{{pickerData}}"
            change="handleChange"
           clickConfirm="clickConfirm"
            clickCancel="clickCancel"
        &gt;
        &lt;/x-picker&gt;
      &lt;/view&gt;
</code></pre>
<p dir="auto">实际显示效果</p>
<p dir="auto"><img src="/assets/uploads/files/1654586183335-8f8101f8ecd621a9be48d725608b6cf8.jpg" alt="8f8101f8ecd621a9be48d725608b6cf8.jpg" class=" img-responsive img-markdown" width="876" height="844" /></p>
<p dir="auto"><strong>1.3 picker的事件响应</strong></p>
<p dir="auto">在index.ts中编写picker的事件响应函数，picker提供了三个事件响应，一个是change事件，一个确认，一个取消。</p>
<pre><code>this.addEventListener("clickConfirm",(event,target) =&gt; {
     console.log("===test-picker的clickConfirm事件===")
     console.log(event.toString());
     (target as Index).setState(
       JSON.parseObject(`{"showPicker":false}`)
     );
     (target as Index).setState(
       JSON.parseObject(`{"showTimePicker":false}`)
     );
   })
   this.addEventListener("clickCancel",(event,target) =&gt; {
     console.log("===test-picker的clickCancel事件===")
     console.log(event.toString());
     (target as Index).setState(
       JSON.parseObject(`{"showPicker":false}`)
     );
     (target as Index).setState(
        JSON.parseObject(`{"showTimePicker":false}`)
     );
   })
   this.addEventListener("handleChange",(event,target) =&gt; {
     console.log("===test-picker的handleChange事件===")
     console.log(event.toString());
});
</code></pre>
<p dir="auto">事件的响应结果展示</p>
<p dir="auto"><img src="/assets/uploads/files/1654586205935-28609c7b0995d66a0f3da6186276ea89.jpg" alt="28609c7b0995d66a0f3da6186276ea89.jpg" class=" img-responsive img-markdown" width="559" height="350" /></p>
<p dir="auto">滚动选项列表时的事件信息。</p>
<p dir="auto"><img src="/assets/uploads/files/1654586213594-2d0a923a217b198e893a0590ae0c8490.jpg" alt="2d0a923a217b198e893a0590ae0c8490.jpg" class=" img-responsive img-markdown" width="559" height="350" /></p>
<p dir="auto">按下确定按键时的响应信息，信息中含有当前选中一级条目、二级条目索引和值。</p>
<p dir="auto"><img src="/assets/uploads/files/1654586219318-0e35609281cc8f097cf734ecafb760b0.jpg" alt="0e35609281cc8f097cf734ecafb760b0.jpg" class=" img-responsive img-markdown" width="559" height="350" /></p>
<p dir="auto">按下取消键时的响应信息，信息中也含有当前选中一级条目、二级条目索引和值。这个需要通过程序去判断，是否取用当前的返回值。</p>
<h3>2.  card组件的学习</h3>
<p dir="auto">Waft-UI中提供了card卡片组件，这个卡片可以作为容器，可以放置其它的组件。</p>
<p dir="auto"><strong>2.1 组件的调用方法</strong></p>
<p dir="auto">在index.json中增加card组件的引用，方法为：</p>
<pre><code>{
 "usingComponents": {
        "x-card": "waft-ui/assembly/card/card",
  }
}
</code></pre>
<p dir="auto"><strong>2.2 card组件的显示</strong></p>
<p dir="auto">在index.axml文件中添加card组件的显示部分，可以为card组件设置标题，调整宽度和长度，背景色，相当的灵活。</p>
<pre><code>&lt;view class="flex"&gt;
      &lt;view style="height: 10rpx"&gt; &lt;/view&gt;
      &lt;x-card title="SWITCH" width="55vw" height="40vh" titleAlign="center" bgColor="green"&gt;
        &lt;x-switch checked="{{true}}"&gt; &lt;/x-switch&gt;&lt;view class="dot"&gt;&lt;/view&gt;
       &lt;view class="doth"&gt;&lt;/view&gt;
        &lt;x-switch checked="{{false}}" onTap="change1"&gt;&lt;/x-switch&gt;&lt;view class="dot"&gt;&lt;/view&gt;
      &lt;/x-card&gt;
      &lt;/view&gt;
</code></pre>
<h3>3.  switch组件的学习</h3>
<p dir="auto">Waft-UI中提供了switch显示组件，switch是一个二值组件，类似开关一样。</p>
<p dir="auto">3.1组件的调用方法</p>
<p dir="auto">在index.json中增加card组件的引用，方法为：</p>
<pre><code>{
 "usingComponents": {
        "x-card": "waft-ui/assembly/card/card",
  }
}
</code></pre>
<p dir="auto"><strong>3.2 switch组件的显示</strong></p>
<p dir="auto">在index.axml中增加switch组件的调用，这里将前面的card组件和switch组件组成一个部件显示，将switch组件放置在card内。</p>
<pre><code>&lt;view class="flex"&gt;
     &lt;view style="height: 10rpx"&gt; &lt;/view&gt;
     &lt;x-card title="SWITCH" width="55vw" height="40vh" titleAlign="center" bgColor="green"&gt;
       &lt;x-switch checked="{{true}}"&gt; &lt;/x-switch&gt;&lt;view class="dot"&gt;&lt;/view&gt;
      &lt;view class="doth"&gt;&lt;/view&gt;
       &lt;x-switch checked="{{false}}" onTap="change1"&gt;&lt;/x-switch&gt;&lt;view class="dot"&gt;&lt;/view&gt;
     &lt;/x-card&gt;
     &lt;/view&gt;
</code></pre>
<p dir="auto">实际显示效果，包含了card组件，背景色设置为绿色和switch组件</p>
<p dir="auto"><img src="/assets/uploads/files/1654586277531-17bad67b5d99fd3b77300ce12b510640.jpg" alt="17bad67b5d99fd3b77300ce12b510640.jpg" class=" img-responsive img-markdown" width="894" height="868" /></p>
<p dir="auto"><strong>3.3 switch的事件响应</strong></p>
<p dir="auto">前面的显示调用中，我们将switch的onTap事件导出名为“change1“的事件。我们只需要响应这个事件就可以了。</p>
<pre><code>this.addEventListener("change1", (e, target): void =&gt; {
     console.log("----&gt; switch事件:changed!");
});
</code></pre>
<p dir="auto">事件的响应结果展示</p>
<p dir="auto"><img src="/assets/uploads/files/1654586292677-33ad3cefa351c3055a0bd4b28b47dbd5.jpg" alt="33ad3cefa351c3055a0bd4b28b47dbd5.jpg" class=" img-responsive img-markdown" width="559" height="350" /></p>
]]></description><link>https://bbs.aw-ol.com/topic/1550/waft-ui组件的学习和测试-picker-switch和card</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 14:57:44 GMT</lastBuildDate><atom:link href="https://bbs.aw-ol.com/topic/1550.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Jun 2022 07:19:49 GMT</pubDate><ttl>60</ttl></channel></rss>