ScrollView中用Text组件动态展示多条文本信息
今天想使用ScrollView展示从json中解析出来的文本信息时,发现使用网格自动布局的话没有办法根据每条信息的不同调整各条信息的网格大小,因为网格布局中cellsize是调整后,所有网格都会调整,于是改用vertical自动布局,好处是可以自由设置每个Text组件的大小,就可以实现ScrollView中多条文本根据各自的文本长度调整文本框宽度(sizeDelta.y)。
先给出思路:因为要动态,所以可以先创建一个UI Text的预设体,这样可以根据解析出的信息条目数,动态生成相应的Text。然后根据每条文本条目的信息量计算Text的宽度。这样就完成了我们的动态展示。
下面给出脚本代码(我直接挂在Content上):
using UnityEngine;
using LitJson;
using UnityEngine.UI;
public class JsonParseToUI : MonoBehaviour {
public GameObject textPrefab;
string json = "{\n \"reason\":\"Success\",\n \"result\":{\n \"data\":[\n {\n \"content\":\"问:什么生物拥有超强的臂力、锋利的指甲和尖锐的牙齿,以至于能撕碎一切坚硬牢固的东西?答:拆快递时的妹子。\",\n