当用户可以通过点击图标在线性/网格/交错视图之间切换列表布局时,我有一个非常常见的情况。在我有2个列表之前 - ListView用于标准列表布局,RadListView用于网格视图。我根据需要"模式"隐藏并显示它们。但是,由于RadListView理论上具有所有必需的布局,因此我只能有一个列表并通过切换布局来重用它。我还没有找到如何直接在XML中做到这一点(如果有的话,这将是最好的方法),所以我想在后面的代码中以编程方式执行此操作。
这是我的尝试:
function _switchListViewLayout() {
const list = modal.getViewById( 'list' )
let layout
if ( list.listViewLayout instanceof ListViewLinearLayout ) {
// switch to grid
layout = new ListViewGridLayout()
layout.scrollDirection = 'vertical'
layout.itemHeight = 150
layout.spanCount = 2
}
else if ( list.listViewLayout instanceof ListViewGridLayout ) {
// switch to list
layout = new ListViewLinearLayout()
layout.scrollDirection = 'vertical'
layout.itemHeight = 66
}
list.listViewLayout = layout
list.refresh()
}
这是正确的方法还是我做错了?
答案 0 :(得分:1)
是的,这是您可以更改RadListView组件的listViewLayout的方法。我确实看到你调用了.refresh()
方法,没有必要只需要将新值设置为listViewLayout
属性。
您可以在RadListView here的官方示例中进行更改。