TinyUI-TUIListView最簡單的使用

        在TinyUI簡介的博客中提到其特點中包含一條,即多數大控件的使用方法和android一直,除了語言差異之外,本篇我們就介紹列表控件TUIListView最簡單的使用方法。

        列表組件/控件作爲目前Android/iOS的APP中最常用的控件,該控件的設計同時參考Android、windows、Qt等使用的經驗進行篩選,最終選擇了Android的ListView設計,其他平臺的列表中使用難以程度或設計上略遜於Android,因爲Android給與了開發者最大的發揮控件,你可以在列表中可以顯示任何控件。

        TUIListView中的每一行每一列你可以放置任何UI組件,使用TUIListView需要配合TUIAdapter進行使用,而TinyUI和Android一樣提供了內置的簡單使用的TUISimpleAdapter。TUISimpleAdapter主要用於顯示文本(即每一行都是隻能顯示文字),如果需要在列表中顯示其他UI組件,則需要自定義一個Adapter,關於自定義Adapter將在後續進行詳細講解。

        本篇既然是TUIListView最簡單的使用,我們就使用TUISimpleAdapter來顯示文本你列表,TUISimpleAdapter最好只用於數據步發生變化的情況,因爲其存放的數據使用了C++標準庫的vector容器,而非使用list容器,vector容器的特點是訪問速度快,但其缺點是vector的內存是連續的,因此內容發生變化可能會造成內存申請和拷貝的動作;而list容器使用的雙向鏈表,其特點是插入數據快,但訪問速度慢。

        本篇我們仍然使用上一篇中自定義的MyWindow來顯示TUIListView。

使用方法/步驟

1. 定義listView和andapter

        MyWindow中包含TUISimpleAdapter.h的頭文件,並定義listView和adapter

MyWindow.h

#ifndef __MY_WINDOW_H__
#define __MY_WINDOW_H__
#include <TUIWindow.h>
#include <TUISimpleAdapter.h>



class MyWindow : public TUIWindow
{
public:
    MyWindow(TUIWindow* parent = nullptr);
    virtual ~MyWindow();

    void onShow();
    void onClose();

private:
    TUIListView listView;
    TUISimpleAdapter adapter;
};

#endif // !__MY_WINDOW_H__

 

2. 填充數據,並把adapter設置到listView中

MyWindow.cpp

#include "MyWindow.h"



MyWindow::MyWindow(TUIWindow* parent)
    : TUIWindow(parent)
{
    setContentView(&this->listView); // 把listView作爲當前窗口的內容視圖


    vector<string> data; // 使用vector<string>類型的data存放數據

    for (int32_t i = 0; i < 20; i++)
    {
        data.push_back(to_string(i)); // 生成0~20的數值-轉換成字符串,放到data中
    }

    this->adapter.setData(data); // 把data設置到adapter中

    this->listView.setAdapter(&this->adapter); // 把adapter設置到listView,作爲listView數據來源和操作對象
}

MyWindow::~MyWindow()
{
}

void MyWindow::onShow()
{
}

void MyWindow::onClose()
{
}

到目前爲止窗口顯示列表控件已全部完成,接下來和上一篇一樣調用MyWindow的show()方法即可顯示,最終結果如下圖所示:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章