soui中,列表控件动态高度的使用注意

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了soui中,列表控件动态高度的使用注意相关的知识,希望对你有一定的参考价值。

1.listview的模板template中,需要增加defHeight属性,即默认高度,同时,不能出现itemHeight属性,否则动态高度会失效

2.数据适配器中,重写getViewDesiredSize,类似下面的代码

DWORD dwState = pItem->GetState();
if((dwState & WndState_Check) ||
(dwState & WndState_PushDown))
{
return CSize(0,80);
}
return CSize(0,40);

3.getview中,订阅行的状态变化消息

pItem->GetEventSet()->subscribeEvent(EventSwndStateChanged::EventID,
Subscriber(&CXX::OnItemStateChanged,this));

4.状态变化时关联下面的函数

bool CTodayTaskerListAdapter::OnItemStateChanged(EventArgs *e)
{
EventSwndStateChanged *e2 = sobj_cast<EventSwndStateChanged>(e);
if(!e2->CheckState(WndState_Hover)) return false;
//通知界面重绘
notifyDataSetInvalidated();
return true;
}

 

以上是关于soui中,列表控件动态高度的使用注意的主要内容,如果未能解决你的问题,请参考以下文章

Android 自定义控件 动态设置高度

每个设备的默认 iOS 控件高度和宽度列表?

如何动态更改列表中控件的属性(C# Winform)?

带有 @Binding 控件的 SwiftUI 动态列表

flex builder中ComboBox控件动态加载列表数据

soui 根据xml创建控件