<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 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ì)上略遜于A(yíng)ndroid,因?yàn)锳ndroid給與了開(kāi)發(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)是訪(fǎng)問(wèn)速度快,但其缺點(diǎn)是vector的內(nèi)存是連續(xù)的,因此內(nèi)容發(fā)生變化可能會(huì)造成內(nèi)存申請(qǐng)和拷貝的動(dòng)作;而list容器使用的雙向鏈表,其特點(diǎn)是插入數(shù)據(jù)快,但訪(fǎng)問(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>類(lèi)型的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è)人資料

    存檔

    主站蜘蛛池模板: 国产精品2019| 成人精品一区二区三区在线观看 | 成人精品视频成人影院| 亚洲av永久无码精品表情包| 91午夜精品亚洲一区二区三区| 欧美精品黑人粗大免费| 精品日韩在线视频一区二区三区| 精品国产美女福利到在线不卡| 少妇精品无码一区二区三区| 亚洲?V无码乱码国产精品| 9re热国产这里只有精品| 91精品在线看| 精品国产一区二区三区久久久狼| 四虎永久在线精品免费一区二区 | 精品国产91久久久久久久a | 久久精品国产99国产精品| 亚洲国产精品久久久久网站| 国产亚洲精品a在线无码| 亚洲精品乱码久久久久久按摩| 久热这里只有精品99国产6| 国产精品高清免费网站| 日韩精品www| 欧美精品黑人巨大在线播放| 2022国产精品自产拍在线观看 | 97精品久久天干天天天按摩| 久久久精品人妻一区二区三区蜜桃 | 国产日韩高清三级精品人成 | 亚洲精品无码专区在线在线播放 | 免费看一级毛片在线观看精品视频 | 久久91精品国产91久久麻豆| 99re6在线视频精品免费| 国产精品综合色区在线观看| 久久香蕉国产线看观看精品yw| 亚洲国产精品无码av| 亚洲国产精品久久电影欧美| 亚洲日韩欧美制服精品二区| 亚洲一区二区三区国产精品| 最新国产精品拍自在线观看| 亚洲精品综合久久| 亚洲精品无码乱码成人| 无码国产精品一区二区免费16|