2

当用户可以通过点击图标在线性/网格/交错视图之间切换列表布局时,我有一个非常常见的场景。在我有 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()
    }

这是正确的方法还是我做错了?

4

1 回答 1

1

是的,这是您可以更改 RadListView 组件的 listViewLayout 的方式。我确实看到您调用了该.refresh()方法,这不是必需的,您只需将新值设置为listViewLayout属性。

您可以在此处更改 RadListView 的官方示例。

于 2017-08-24T09:07:33.343 回答