从活动部分隐藏适配器中的进度条

问题描述 投票:0回答:1

我的适配器部分有一个进度条,我想从活动部分更改它。

适配器

interface PreparedOnItemDetailClickListener {
        fun onClick(
            orderDetail: PreparedOrdersResponse,
            view: View,
            preparingDetailProgressBar: ProgressBar
        )
    }

适配器-ViewHolder

detailAreaLinearPreparing.setOnClickListener {
                    preparedOnItemDetailClickListener.onClick(
                        data,
                        it,
                        binding.preparingDetailProgressBar
                    )
                    preparingDetailProgressBar.visible()
                }

片段

我可以成功捕获片段部分的监听事件,但无法隐藏进度条。 顺便说一句,我可以隐藏视图。

 override fun onClick(
        orderDetail: PreparedOrdersResponse,
        view: View,
        preparingDetailProgressBar: ProgressBar
    ) {
        // TODO: PREPARED DETAIL ON ITEM CLICK
        view.isClickable = false
        Log.e("ORDERDETAIL", "onClick: " + orderDetail.id)
        detailOrderDialog(orderDetail, view,preparingDetailProgressBar)
    }

详细订单对话框

我想将其隐藏在对话框部分,因为我希望在对话框打开时隐藏进度条。

private fun detailOrderDialog(
        orderDetail: PreparedOrdersResponse,
        view: View,
        preparingDetailProgressBar: ProgressBar
    ) {
        val dialog = AlertDialog.Builder(requireContext())
        val bindingDialog =
            DialogDetailBinding.inflate(
                LayoutInflater.from(binding.root.context),
                binding.root,
                false
            )
        dialog.setView(bindingDialog.root)
        val alertDialog = dialog.create()
        bindingDialog.apply {

            preparingDetailProgressBar.gone()

            cancelImageView.setOnClickListener {
                alertDialog.dismiss()
                view.isClickable = true
            }

            menuImageView.setOnClickListener {
                view.isClickable = true

        
        }
        alertDialog.setCancelable(true)
        alertDialog.show()
    }

我试过了,但没用

android kotlin android-recyclerview progress-bar
1个回答
0
投票

您可以移动

position
信息,而不是将视图元素移动到零件。

您可以使用以下方法。(使用

Fragment
Activity

fun hideProgressBar(position: Int) {
    
    val holder = yourRecylerView.findViewHolderForAdapterPosition(position) as YourViewHolder?
    holder?.preparingDetailProgressBar?.visibility = View.GONE
    // You can perform all the operations in this section. Like showing Alert Dialog.
}

这里重要的细节是使用

findViewHolderForAdapterPosition
。很实用。

© www.soinside.com 2019 - 2024. All rights reserved.