Skip to content

adventam10/UnityListView

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

UnityListView

UnityHub-2.4.3 Unity-2020.3.6f1

UITableView ぽいリスト表示できるやつをUnityでつくってみました。

list_1

使い方

  1. セルを Prefab 化する
    SceneButton を置いて Assets にドラッグ&ドロップします。

  2. ListViewCell を継承したスクリプトを作成する

    public class SampleCell : ListViewCell 
    {
        [SerializeField]
        private Text _text;
        
        public override void UpdateData(int index, object obj)
        {
            base.UpdateData(index, obj);
            _text.text = obj as string;
        }
    }    
  3. Prefab 化したセルにスクリプトを設定する
    cell

  4. SceneScrollView を配置する

  5. ScrollViewListView スクリプトを設定する
    listView

  6. 適当なスクリプトを設定して以下の様の記載する

    public class ListViewHandler : MonoBehaviour, ListViewDataSource
    {
        private List<int> _dataList = new List<int>();
        private ListView _listView;
        
        void Start()
        {
            for (int i = 0; i < 20; i++)
            {
                _dataList.Add(i);
            }
            
            GameObject resultObj = GameObject.Find("ListView");
            _listView = resultObj.GetComponent<ListView> ();
            _listView.dataSource = this;
            _listView.selector = delegate (int index) {
                Debug.Log("テーブルデリゲート: " + index);
            };
            _listView.ReloadData();
        }
        
        public object Data(int index) {
            return _dataList[index].ToString();
        }
        
        public int dataCount { 
            get { return _dataList.Count; }
        }
    }

課題

いくつか課題がありますが難しいのであきらめました。

  1. 画面サイズが変わった場合にセル数がおかしくなる
    ScrollView の高さとセルの高さから必要なセル数を計算する処理を画面サイズ変更時にもやる必要がある?
  2. 上下に無限にスクロールできてしまう
    cell_height
  3. 指定の位置にコードでスクロールしたい verticalNormalizedPosition 使えばできるかと思ったのですが難しいのであきらめました。
  4. ReloadData() 後もスクロール位置を保持したい
    こちらも難しいのでリロード時は一番上へ戻すようにしました。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages