1.使用scroll view,设置(例如width 500,height 200),关联脚本ScrollList
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
public class ScrollList : MonoBehaviour
{
//获取滚动视图组件
public ScrollRect scrollRect;
//获取滚动视图的内容对象
public RectTransform content;
//定义一个数据结构,表示地址和数量
[System.Serializable]
public struct Data
{
public int ID; //编号
public string Name; //姓名
public string Sex; //性别
public string Addr; //地址
}
//定义一个列表,存储数据
public List<Data> dataList;
public int number = 5; //测试默认5个
//定义一个预制体,表示列表项的样式
public GameObject itemPrefab;
//在开始时,根据数据列表生成列表项并添加到滚动视图中
void Start()
{
//添加一条数据
Data newData = new Data();
newData.ID = 1;
newData.Name = "li";
newData.Sex = "nan";
newData.Addr = "beijing";
dataList.Add(newData);
//遍历数据列表
//foreach (Data data in dataList)
for (int i = 0; i < number; i++)
{
//实例化一个列表项对象
GameObject item = Instantiate(itemPrefab, content);
//检测奇偶数换色
if (i % 2 == 1) {
item.GetComponent<Image>().color = Color.cyan;
}
Row row = item.GetComponent<Row>();
row.SetData(dataList[0].Name, "Field 2", "Field 3");
}
}
}
2.scroll view 对应的配置,脚本组件对应拖过去。
3.viewport 配置颜色color ,勾选show mask graphic(遮挡子物体,铺满)
4.Content 配置,对应配置Height,cell size (每行的配置),spacing 间隔,结合content size filter组件,高度适应滚动。
5.在content下排好一行三个字段视图,table-row 挂载脚本row ,三个Text 拖过去分别关联脚本字段,然后做出预制体。
using UnityEngine;
using UnityEngine.UI;
public class Row : MonoBehaviour
{
public Text nameText;
public Text sexText;
public Text addrText;
public void SetData(string name, string sex, string addr)
{
nameText.text = name;
sexText.text = sex;
addrText.text = addr;
}
}