2

ユーザーがアイコンをタップして線形/グリッド/千鳥表示の間でリストのレイアウトを切り替えることができる非常に一般的なシナリオがあります。以前は、標準リスト レイアウト用の ListView とグリッド ビュー用の RadListView という 2 つのリストがありました。必要な「モード」に応じて、それらを非表示および表示しました。しかし、理論的には RadListView には必要なすべてのレイアウトがあるため、リストを 1 つだけ持つことができ、レイアウトを切り替えて再利用できます。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 に答える