FAB Activity вызывает последний фрагмент в Viewpager, который не виден - PullRequest
0 голосов
/ 26 января 2020

Я использую Activity с представлениями FAB и ViewPager во фрагментах. Используя интерфейс во Fragment, реализованный Activity, щелчок Fab отправляется Fragment, чтобы подготовить данные на основе фрагмента его viewModel, чтобы показать их в childFragment прежде всего.

class ProductActivity : AppCompatActivity(), ProductFragment.FabListener {

    override fun onAttachFragment(fragment: Fragment) {
        super.onAttachFragment(fragment)

        if (fragment is ProductFragment) {
            fragment.setOnActivityFabClickListener(this)
        }
    }


    override fun getFab(): FloatingActionButton {
        return product_list_fab
    }
}

In Fragment:

class ProductFragment : Fragment() {

    private lateinit var productListFabListener: ProductListFabListener

    interface ProductListFabListener {
            fun getFab(): FloatingActionButton
    }

    fun setOnActivityFabClickListener(callback: ProductListFabListener) {
        this.productListFabListener = callback
    }

    productListFabListener.getFab().setOnClickListener {
        val productListDialog = ProductListFragment.newInstance(
             viewModel.getMonthEventsList())             
             productListDialog.show(childFragmentManager, "products")
    }
}

Проблема в том, что Fab-клик из Activity вызывает последний созданный фрагмент, который не виден, и результирующие данные, которые нужно отобразить, не связаны с текущим отображением Fragment.

Как связать щелчок Activity FloatingActionButton с текущим видимым представлением во Fragment?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...