You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中Woxblom DragListView默认显示第三列实现求助

解决DragListView默认滚动到指定列的问题

问题说明

使用Woxblom的DragListView库,在创建完所有列后希望默认显示第三列,调用scrollToColumn(2, true)并未生效。

尝试的代码

private fun resetBoard(
    oldColumn: Int, oldRow: Int, newColumn: Int, isDraggable: Boolean,
) {
    binding.boardView.clearBoard()
    binding.boardView.setCustomDragItem(MyDragItem(activity, R.layout.column_item))
    binding.boardView.setCustomColumnDragItem(MyDragItem(activity, R.layout.column_drag_layout))


    if (isDraggable) {
        if (mDraftItemArray.size > oldRow) {

            if (oldRow == 0) {
                mDraftItemArray[oldRow].second.topMargin = true
            } else if (!mDraftItemArray[oldRow].second.itemIdSort.equals(
                    mDraftItemArray[oldRow - 1].second.itemIdSort,
                    true
                )
            ) {
                mDraftItemArray[oldRow].second.topMargin = true
            }
        }

        if (newColumn == ColumnStatus.Inprogress.column || oldColumn == ColumnStatus.Todo.column) {
            updateRowItems(mToDoItemArray)
        }
        if (newColumn == ColumnStatus.Inprogress.column || oldColumn == ColumnStatus.Inprogress.column) {
            updateRowItems(mInProgressItemArray)
        }
        if (newColumn == ColumnStatus.ForApproval.column || oldColumn == ColumnStatus.ForApproval.column) {
            updateRowItems(mForApprovalItemArray)
        }
        if (newColumn == ColumnStatus.Completed.column || oldColumn == ColumnStatus.Completed.column) {
            updateRowItems(mCompletedItemArray)
        }
    }
    addColumn(mDraftItemArray)
    addColumn(mToDoItemArray)
    addColumn(mInProgressItemArray)
    addColumn(mForApprovalItemArray)
    addColumn(mCompletedItemArray)


   binding.boardView.scrollToColumn(2,true)


}

解决方法

  • 延迟执行滚动操作
    直接调用scrollToColumn可能因UI未完成列渲染导致失效,通过post方法延迟执行,确保列已完全加载:

    binding.boardView.post {
        binding.boardView.scrollToColumn(2, true)
    }
    
  • 触发UI刷新后再滚动
    若延迟执行仍无效,先强制刷新UI再执行滚动:

    binding.boardView.requestLayout()
    binding.boardView.post {
        binding.boardView.scrollToColumn(2, true)
    }
    
  • 确认列索引与库版本
    你添加列的顺序是Draft、Todo、InProgress、ForApproval、Completed,第三列索引确实为2,这部分无问题。若上述方法都无效,尝试升级DragListView库到最新版本,避免旧版本的方法bug。

内容的提问来源于stack exchange,提问作者Ayaz Muhammad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:15:19