Since 2.2.1 release we have a strange behaviour with TableViewItem constructed with layout (RelativeLayout, HorizontalBoxLayout, ...):
E/Tizen::Ui( 4868): result Tizen::Ui::_Layout::Layout::GetItemWidthMatchMode(const Tizen::Ui::_Layout::LayoutItem&, Tizen::Ui::_Layout::LayoutMatchMode&) const(222) > [E_INVALID_ARG] Control dose not belong to layout. E/Tizen::Ui( 4868): result Tizen::Ui::_Layout::Layout::GetItemHeightMatchMode(const Tizen::Ui::_Layout::LayoutItem&, Tizen::Ui::_Layout::LayoutMatchMode&) const(249) > [E_INVALID_ARG] Control dose not belong to layout. E/Tizen::Ui( 4868): result Tizen::Ui::_Layout::Layout::GetItemWidthMatchMode(const Tizen::Ui::_Layout::LayoutItem&, Tizen::Ui::_Layout::LayoutMatchMode&) const(222) > [E_INVALID_ARG] Control dose not belong to layout. E/Tizen::Ui( 4868): result Tizen::Ui::_Layout::Layout::GetItemHeightMatchMode(const Tizen::Ui::_Layout::LayoutItem&, Tizen::Ui::_Layout::LayoutMatchMode&) const(249) > [E_INVALID_ARG] Control dose not belong to layout. E/Tizen::Ui( 4868): result Tizen::Ui::_Layout::Layout::GetItemWidthMatchMode(const Tizen::Ui::_Layout::LayoutItem&, Tizen::Ui::_Layout::LayoutMatchMode&) const(222) > [E_INVALID_ARG] Control dose not belong to layout. E/Tizen::Ui( 4868): result Tizen::Ui::_Layout::Layout::GetItemHeightMatchMode(const Tizen::Ui::_Layout::LayoutItem&, Tizen::Ui::_Layout::LayoutMatchMode&) const(249) > [E_INVALID_ARG] Control dose not belong to layout. E/Tizen::Ui( 4868): result Tizen::Ui::_Layout::Layout::GetItemWidthMatchMode(const Tizen::Ui::_Layout::LayoutItem&, Tizen::Ui::_Layout::LayoutMatchMode&) const(222) > [E_INVALID_ARG] Control dose not belong to layout. E/Tizen::Ui( 4868): result Tizen::Ui::_Layout::Layout::GetItemHeightMatchMode(const Tizen::Ui::_Layout::LayoutItem&, Tizen::Ui::_Layout::LayoutMatchMode&) const(249) > [E_INVALID_ARG] Control dose not belong to layout.
How to reproduce – implement ITableViewItemProvider with basic CreateItem logic:
Label *pSomeControl = new Label(); pSomeControl->Construct(someRect); RelativeLayout itemLayout; itemLayout.Construct(); pItem->Construct(itemLayout, Dimension(itemWidth, itemHeight)); pItem->AddControl(pSomeControl); pItemlayout->SetRelation(*pSomeControl, pItem, RECT_EDGE_RELATION_LEFT_TO_LEFT); // or any other relation type
The actual problem is a millions of error messages in logs (on each redraw?) and they are written in UI thread. Scrolling of this kind TableView becomes laggy. It was OK in 2.2.0 release (there were no such errors).
Here is a little demo for the issue: https://dl.dropboxusercontent.com/u/931077/issuedemo.tag.gz