ユーザーがアイコンをタップして線形/グリッド/千鳥表示の間でリストのレイアウトを切り替えることができる非常に一般的なシナリオがあります。以前は、標準リスト レイアウト用の 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()
}
これは正しい方法ですか、それとも間違っていますか?