Как открыть фрагмент из фрагмента нижней навигационной панели - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть нижняя навигационная панель с 3 фрагментами, определенными в основной активности. В одном из фрагментов я хочу открыть некоторый фрагмент, щелкнув элемент в представлении рециркулятора под представлением календаря (экран 1) . Когда я нажимаю на него, открывается новый фрагмент с нижней панелью навигации (экран 2) . Как открыть этот новый фрагмент без отображения нижней навигационной панели с архитектурной точностью?

class ScheduleFragment : Fragment(), EventCardAdapter.OnEventClickListener{

    private lateinit var calendarView: CalendarView
    private lateinit var recyclerView: RecyclerView
    private lateinit var viewAdapter: EventCardAdapter
    private lateinit var viewManager: RecyclerView.LayoutManager

    override fun onCreateView(
            inflater: LayoutInflater, container: ViewGroup?,
            savedInstanceState: Bundle?
    ): View? {

        val view = inflater.inflate(R.layout.schedule_fragment, container, false)

        viewManager = LinearLayoutManager(context)
        viewAdapter = EventCardAdapter(events, this)

      recyclerView = view.findViewById(R.id.events_recycler_view)

      return view
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {

    calendarView = view.findViewById(R.id.schedule_view)
    calendarView.setOnDateChangeListener { _, year, month, dayOfMonth ->
        Toast.makeText(
                context,
                "$dayOfMonth/$month/$year",
                Toast.LENGTH_LONG
        ).show()
    }

    recyclerView.apply {
        setHasFixedSize(true)
        layoutManager = viewManager
        adapter = viewAdapter
    }


}

    // moving to fragment by clicking item in recycler
    override fun onEventClick(view: View, position: Int) {
        view.findNavController().navigate(R.id.action_scheduleFragment_to_attendanceEntryFragment)
    }

}

1 Ответ

0 голосов
/ 18 апреля 2020

в размещенном действии, реализуемом в пункте назначения, изменил обратный вызов слушателя, затем, когда идентификатор пункта назначения, равный одному из фрагментов, вы хотите отобразить панель навигации, установите для панели навигации видимость, иначе установите ее как пропавшую

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