<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • TinyUI-TUIListView最簡(jiǎn)單的使用

          2020-4-7    seo達(dá)人

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



                  列表組件/控件作為目前Android/iOS的APP中最常用的控件,該控件的設(shè)計(jì)同時(shí)參考Android、windows、Qt等使用的經(jīng)驗(yàn)進(jìn)行篩選,最終選擇了Android的ListView設(shè)計(jì),其他平臺(tái)的列表中使用難以程度或設(shè)計(jì)上略遜于Android,因?yàn)锳ndroid給與了開發(fā)者最大的發(fā)揮控件,你可以在列表中可以顯示任何控件。



                  TUIListView中的每一行每一列你可以放置任何UI組件,使用TUIListView需要配合TUIAdapter進(jìn)行使用,而TinyUI和Android一樣提供了內(nèi)置的簡(jiǎn)單使用的TUISimpleAdapter。TUISimpleAdapter主要用于顯示文本(即每一行都是只能顯示文字),如果需要在列表中顯示其他UI組件,則需要自定義一個(gè)Adapter,關(guān)于自定義Adapter將在后續(xù)進(jìn)行詳細(xì)講解。



                  本篇既然是TUIListView最簡(jiǎn)單的使用,我們就使用TUISimpleAdapter來(lái)顯示文本你列表,TUISimpleAdapter最好只用于數(shù)據(jù)步發(fā)生變化的情況,因?yàn)槠浯娣诺臄?shù)據(jù)使用了C++標(biāo)準(zhǔn)庫(kù)的vector容器,而非使用list容器,vector容器的特點(diǎn)是訪問(wèn)速度快,但其缺點(diǎn)是vector的內(nèi)存是連續(xù)的,因此內(nèi)容發(fā)生變化可能會(huì)造成內(nèi)存申請(qǐng)和拷貝的動(dòng)作;而list容器使用的雙向鏈表,其特點(diǎn)是插入數(shù)據(jù)快,但訪問(wèn)速度慢。



                  本篇我們?nèi)匀皇褂蒙弦黄凶远x的MyWindow來(lái)顯示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. 填充數(shù)據(jù),并把a(bǔ)dapter設(shè)置到listView中



            MyWindow.cpp


            include "MyWindow.h"

             

             

             

            MyWindow::MyWindow(TUIWindow* parent)

                : TUIWindow(parent)

            {

                setContentView(&this->listView); // 把listView作為當(dāng)前窗口的內(nèi)容視圖

             

             

                vector<string> data; // 使用vector<string>類型的data存放數(shù)據(jù)

             

                for (int32_t i = 0; i < 20; i++)

                {

                    data.push_back(to_string(i)); // 生成0~20的數(shù)值-轉(zhuǎn)換成字符串,放到data中

                }

             

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

             

                this->listView.setAdapter(&this->adapter); // 把a(bǔ)dapter設(shè)置到listView,作為listView數(shù)據(jù)來(lái)源和操作對(duì)象

            }

             

            MyWindow::~MyWindow()

            {

            }

             

            void MyWindow::onShow()

            {

            }

             

            void MyWindow::onClose()

            {

            }

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


          日歷

          鏈接

          個(gè)人資料

          存檔

          国产成人久久AV免费| 久久久久99这里有精品10| 伊人久久大香线蕉成人| 久久久精品日本一区二区三区| 久久噜噜电影你懂的| 亚洲狠狠综合久久| 夜夜亚洲天天久久| 久久国产美女免费观看精品| 国产综合免费精品久久久| 久久久久久久国产免费看| 亚洲欧美精品一区久久中文字幕| 香蕉久久夜色精品国产2020| 色综合久久久久无码专区| 国产精品久久久久久一区二区三区 | 色狠狠久久综合网| 亚洲综合熟女久久久30p| 国内精品久久久久影院一蜜桃| 久久精品一区二区国产| 国产精品伊人久久伊人电影| 精品伊人久久久| 香港aa三级久久三级| 伊人久久一区二区三区无码| 91精品国产高清91久久久久久| 久久久久成人精品无码| 久久久女人与动物群交毛片| 久久久久亚洲AV综合波多野结衣| 亚洲精品乱码久久久久久按摩| 国产一区二区精品久久岳| 久久亚洲精品中文字幕| 精品多毛少妇人妻AV免费久久 | 久久66热人妻偷产精品9| 久久综合九色欧美综合狠狠| 久久99精品久久久久久hb无码 | 久久久久国产精品嫩草影院| 久久se精品一区精品二区| 久久成人国产精品免费软件| 中文字幕亚洲综合久久2| 国产精品禁18久久久夂久| 久久久久久精品免费免费自慰| 日日狠狠久久偷偷色综合96蜜桃| 国产成人无码精品久久久免费|