首页 文章

Nativescript:RadListView,如何以编程方式切换布局(listViewLayout)

提问于
浏览
1

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

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

1 回答

  • 1

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

    您可以在RadListView here的官方示例中进行更改 .

相关问题