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

        • TinyUI-TUIListView最簡單的使用

          2020-4-7    seo達人

                在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()方法即可顯示,最終結果如下圖所示:


          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://m.sdgs6788.com

          存檔

          韩国无遮挡三级久久| 日产精品久久久久久久| 亚洲欧美精品伊人久久| 99久久国产综合精品网成人影院| 97精品国产97久久久久久免费 | 伊人久久大香线蕉综合Av| 久久国产免费直播| 日本精品久久久久中文字幕8| 91性高湖久久久久| 久久精品国产亚洲av麻豆图片| 久久国产高潮流白浆免费观看| 国产精品免费久久| 久久99久久99精品免视看动漫| 国产一区二区精品久久| 亚洲欧洲久久av| 久久国产精品久久| 亚洲av成人无码久久精品| 久久e热在这里只有国产中文精品99| 久久久久久久波多野结衣高潮| 久久水蜜桃亚洲av无码精品麻豆| 久久93精品国产91久久综合| 麻豆AV一区二区三区久久| 日本久久中文字幕| 999久久久免费国产精品播放| 久久久噜噜噜久久熟女AA片| 色综合久久天天综线观看| 久久精品国产一区| 亚洲中文字幕无码久久综合网| 久久久久亚洲AV无码专区桃色| 99精品国产在热久久无毒不卡| 久久婷婷是五月综合色狠狠| 国产精品99久久不卡| 欧美日韩中文字幕久久伊人| 久久久久亚洲精品天堂| 九九精品99久久久香蕉| 亚洲AV无码久久精品狠狠爱浪潮| 无码任你躁久久久久久| 久久综合色区| 97香蕉久久夜色精品国产| 久久久久免费精品国产| 亚洲中文字幕无码久久精品1|