CocosStudioのUIEditorで作ったListViewを使うの続きです。
配置したリストの行選択のイベントを拾う方法になります。
デモ
ソースコード
HelloWorldScene.cpp
listView->addEventListener([](Ref *ref, ui::ListView::EventType eventType){
if (eventType == ui::ListView::EventType::ON_SELECTED_ITEM_END) {
auto listView = static_cast<ui::ListView*>(ref);
// 選択状態を色を元に戻す
for (auto widget : listView->getItems()) {
widget->getChildByName<ui::Text*>("Label_2")->setColor(Color3B::WHITE);
}
// 選択した行の色を変える
auto selectedIndex = listView->getCurSelectedIndex();
listView->getItem(selectedIndex)->getChildByName<ui::Text*>("Label_2")->setColor(Color3B::GREEN);
CCLOG("selected index %ld", selectedIndex);
}
});
GitHubに公開しているソースはこちらになります。