Egret社区
5银子
本帖最后由 infeng 于 2016-3-10 11:24 编辑

我自己写的列表的代码如下:
[mw_shl_code=javascript,true]class MessageList extends eui.Component {
    public scroller: eui.Scroller;
    public dataGroup:eui.DataGroup;
    constructor() {
        super();
        this.percentWidth = 50;
        //先创建一个数组
        var sourceArr: any[] = [];
        for(var i: number = 1;i < 20;i++) {
            sourceArr.push({ label: "艾莎:我的宇宙的主宰哈哈哈哈哈哈哈哈点点" + i });
        }
        //用ArrayCollection包装
        var myCollection: eui.ArrayCollection = new eui.ArrayCollection(sourceArr);
        this.dataGroup = new eui.DataGroup();
        this.dataGroup.dataProvider = myCollection;
        var itemExml = `
        <?xml version="1.0" encoding="utf-8" ?>
        <e:Skin class="skins.ItemRendererSkin" xmlns:e="http://ns.egret.com/eui">
                <eabel id="labelDisplay" top="8" bottom="8" left="8" right="8"
                         size="15" fontFamily="Tahoma 'Microsoft Yahei'"
                         textColor="0xFFFFFF" text="{data.label}" verticalAlign="middle"/>
        </e:Skin>        
        `;
        this.dataGroup.itemRendererSkinName = itemExml;
        this.dataGroup.useVirtualLayout = true;
        
        this.scroller = new eui.Scroller();
        this.scroller.height = 160;
        this.scroller.percentWidth = 100;
        this.scroller.viewport = this.dataGroup;
        this.addChild(this.scroller);
        this.scroller.scrollPolicyH = eui.ScrollPolicy.OFF;
    }
    protected createChildren() {
        //初始化后改变滚动的位置
        this.scroller.viewport.validateNow();
        this.scroller.viewport.scrollV = 0;
    }
}[/mw_shl_code]

这样显示出来的时候有一个问题就是每一个item中的文字不会换行,想请教一下该如何设置才能使label的宽度等于这个列表的宽度,我尝试过直接设置label的宽度,但是不行,很紧急啊!!
q1.png

最佳答案

查看完整内容

设置Label的multiline = true, 不行也加上wordWrap = true
分享到 :
0 人收藏

11 个回复

倒序浏览
taotao5453  略有小成 | 2016-3-10 10:31:43
设置Label的multiline = true,
不行也加上wordWrap = true
infeng  登堂入室 | 2016-3-10 10:48:25
taotao5453 发表于 2016-3-10 10:35
设置Label的multiline = true,
不行也加上wordWrap = true

都不行啊,是不是要设置label的宽度才行
taotao5453  略有小成 | 2016-3-10 10:49:18
infeng 发表于 2016-3-10 10:48
都不行啊,是不是要设置label的宽度才行

是不是label高度不够啊,宽度试试设置成固定的
infeng  登堂入室 | 2016-3-10 11:03:47
taotao5453 发表于 2016-3-10 10:49
是不是label高度不够啊,宽度试试设置成固定的

设置了宽度之后是可以换行,但是无论我设置的宽度是多少,label的宽度都不会变
taotao5453  略有小成 | 2016-3-10 11:05:02
infeng 发表于 2016-3-10 11:03
设置了宽度之后是可以换行,但是无论我设置的宽度是多少,label的宽度都不会变 ...

宽度不变是因为上面eui中设置了right 影响的
infeng  登堂入室 | 2016-3-10 11:13:21
本帖最后由 infeng 于 2016-3-10 11:14 编辑
taotao5453 发表于 2016-3-10 11:05
宽度不变是因为上面eui中设置了right 影响的

我去掉label的right之后,设置了label的宽度为320才能填满一行,但是我的容器的宽度才120 。你可以看下我发出了的图片
taotao5453  略有小成 | 2016-3-10 11:16:20
infeng 发表于 2016-3-10 11:13
我去掉label的right之后,设置了label的宽度为320才能填满一行,但是我的容器的宽度才120 。你可以看下 ...

那你设置宽度为120啊,不是可以换行了吗
infeng  登堂入室 | 2016-3-10 11:24:31
taotao5453 发表于 2016-3-10 11:16
那你设置宽度为120啊,不是可以换行了吗

你看看我最新的图片,这是label设置了120的效果
infeng  登堂入室 | 2016-3-10 11:28:12
taotao5453 发表于 2016-3-10 11:16
那你设置宽度为120啊,不是可以换行了吗

我去除font-family就没问题了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部