<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è)人資料

    存檔

    主站蜘蛛池模板: 久久夜色精品国产欧美乱| 97久久超碰国产精品2021| 久久精品99久久香蕉国产色戒 | 精品深夜AV无码一区二区| 无码8090精品久久一区| 国产精品成人免费观看| 精品视频第一页| 99香蕉国产精品偷在线观看| 亚洲国产精品成人午夜在线观看| 国产精品无码专区在线观看| 亚洲第一精品在线视频| AV无码精品一区二区三区| 久久久无码精品亚洲日韩按摩| 无码人妻精品一区二区三区99不卡 | 91视频精品全国免费观看| 亚洲人精品午夜射精日韩| 久久精品国产精品亚洲| 国产精品视频九九九| 四虎国产精品免费观看| 国产精品久久自在自线观看| 国产成人精品日本亚洲网站| 日产精品久久久久久久| 亚洲中文字幕久久精品无码喷水| 四虎国产精品永久在线无码| 欧美日韩精品久久久久| 国产亚洲精品国看不卡| 99精品国产福利在线观看| 青青青青久久精品国产h| 久久九九青青国产精品| 欧美精品/日韩精品/国产精品| 久久99精品国产99久久| 国内精品久久久久| 柠檬福利精品视频导航| 精品一区二区三区中文字幕| 国产一成人精品福利网站| 欧美亚洲国产成人精品| 四虎国产精品免费久久5151| 国产精品久久久久久久午夜片 | 久久精品国产亚洲av麻豆小说| 精品无码AV无码免费专区| 国语自产精品视频在线区|