第一周、1.List组件

本文详细介绍了如何使用List组件来展示列表数据,包括设置滚动条、添加侧边索引栏以及实现列表的折叠和展开功能。通过示例代码展示了如何在HTML中创建List组件,以及对应的CSS样式和JavaScript事件处理,帮助开发者打造更加交互友好的数据展示界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

List是用来显示列表的容器组件,包含一系列相同宽度的列表项,适合连续、多行地呈现同类数据。

 

创建List组件:

<!-- index.hml -->
<div class="container">
    <list>
        <list-item class="listItem"></list-item>
        <list-item class="listItem"></list-item>
        <list-item class="listItem"></list-item>
        <list-item class="listItem"></list-item>
        <list-item class="listItem"></list-item>
    </list>
</div>
.container {
    display: flex;
    justify-content: center;
    align-items: center;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
}

.listItem{
    height: 20%;
    background-color:#d2e0e0;
    margin-top: 20px;
}

  • <list-item-group>是<list>的子组件,实现列表分组功能,不能再嵌套<list>,可以嵌套<list-item>。
  • <list-item>是<list>的子组件,展示列表的具体项。

添加滚动条:

设置scrollbar属性为on即可在屏幕右侧生成滚动条,实现长列表或者屏幕滚动等效果。

<list class="listCss" scrollbar="on" >

<!-- index.hml -->
<div class="container">
    <list class="listCss" scrollbar="on" >
        <list-item class="listItem"></list-item>
        <list-item class="listItem"></list-item>
        <list-item class="listItem"></list-item>
        <list-item class="listItem"></list-item>
        <list-item class="listItem"></list-item>
        <list-item class="listItem"></list-item>
    </list>
</div>
.container {
    display: flex;
    justify-content: center;
    align-items: center;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
}

.listItem{
    height: 20%;
    background-color:#d2e0e0;
    margin-top: 20px;
}

.listCss{
    height: 100%;
    scrollbar-color: #8e8b8b;
    scrollbar-width: 20px;
}

 

 添加侧边索引栏:

设置indexer属性为自定义索引时,索引栏会显示在列表右边界处,indexer属性设置为true,默认为字母索引表。section="#"可定义list组件的子组件为#在索引栏点击#即可显示该子组件。

<!-- index.hml -->
<div class="container">
        <list class="listCss" scrollbar="on" class="list" indexer="true">
            <list-item class="listItem" section="#"></list-item>
            <list-item class="listItem" section="A"> </list-item>
            <list-item class="listItem" section="B"></list-item>
            <list-item class="listItem" section="B"></list-item>
            <list-item class="listItem" section="C"></list-item>
            <list-item class="listItem" section="D"></list-item>
        </list>
</div>

 实现列表折叠和展开

为List组件添加groupcollapse和groupexpand事件实现列表的折叠和展开。

<!-- index.hml -->
<div class="doc-page">
  <list style="width: 100%;" id="mylist">
    <list-item-group for="listgroup in list" id="{{listgroup.value}}" ongroupcollapse="collapse" ongroupexpand="expand">
      <list-item type="item" style="background-color:#FFF0F5;height:95px;">
        <div class="item-group-child">
          <text>One---{{listgroup.value}}</text>
        </div>
      </list-item>
      <list-item type="item" style="background-color: #87CEFA;height:145px;" primary="true">
        <div class="item-group-child">
          <text>Primary---{{listgroup.value}}</text>
        </div>
      </list-item>
    </list-item-group>
  </list>
</div>
// xxx.js
import prompt from '@system.prompt';
export default {
    data: {
        direction: 'column',
        list: []
    },
    onInit() {
        this.list = []
        this.listAdd = []
        for (var i = 1; i <= 2; i++) {
            var dataItem = {
                value: 'GROUP' + i,
            };
            this.list.push(dataItem);
        }
    },
    collapse(e) {
        prompt.showToast({
            message: 'Close ' + e.groupid
        })
    },
    expand(e) {
        prompt.showToast({
            message: 'Open ' + e.groupid
        })
    }
}
/* index.css */
.doc-page {
    flex-direction: column;
    background-color: #F1F3F5;
}
list-item{
    margin-top:30px;
}
.top-list-item {
    width:100%;
    background-color:#D4F2E7;
}
.item-group-child {
    justify-content: center;
    align-items: center;
    width:100%;
}

 

极化码(Polar Code)是由土耳其科学家Erdal Arıkan在2009年提出的一种新型纠错编码技术。它通过利用信道的极化现象,将虚拟信道分为误码率接近0和接近1/2的两类。在编码设计中,数据被放置在误码率极低的信道上,从而实现高效的数据传输。极化码的主要优势在于其理论编码容量能够达到香农限,并且构造方法较为简单。 MATLAB是一种功能强大的数学计算和编程工具,广泛应用于科学研究和工程领域。在极化码的研究中,MATLAB可用于构建编码和解码算法,模拟数据在不同信道条件下的传输效果,验证理论性能,并优化相关参数。 SC(Successive Cancellation,逐位取消)译码是极化码的基本解码方法。它从最可靠的比特开始,依次解码每个虚拟信道,且每个比特的解码结果会影响后续比特的解码,因为它们之间存在依赖关系。虽然SC译码的实现较为简单,但其计算复杂度较高,随着码长的增加,解码时间会线性增长。 SCL(Successive Cancellation List,逐位取消列表)译码是SC译码的改进版本。它通过引入列表机制,同时处理多个路径,从而增强了错误校正能力,并在一定程度上降低了错误率。与SC译码相比,SCL译码虽然需要消耗更多的计算资源,但能够提供更好的性能。 一个完整的MATLAB仿真资源通常包含以下内容: 编码模块:用于实现极化码的生成,包括码字构造和极化矩阵操作等。 信道模型:用于模拟各种通信信道,例如AWGN(加性高斯白噪声)信道或衰落信道。 SC/SCL译码模块:包含SC译码和SCL译码的算法实现。 误码率(BER)计算:通过比较发送和接收的码字,计算误码率,以评估编码性能。 性能曲线绘制:绘制误码率与信噪比(SNR)之间的关系曲线,展示不同译码策略的性能差异。 使用说明:指导用户如何运行仿真,理解代码结构,以及如何调整参数以进行自定义实验。 代码注
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值