Я создаю портфельное приложение, которое использует Android Jetpack Navigation NavController
. Я создал фрагмент с RecyclerView
, который будет заполнен представлениями, по которым вы можете щелкнуть, чтобы перейти к различным демонстрациям приложений (и, возможно, к реальным приложениям, которые я создал, если смогу это выяснить). В настоящее время я заполняю список вручную, но я бы хотел автоматизировать этот процесс.
class PortfolioFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_portfolio, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val navController = view.findNavController()
val currentDestination = navController.currentDestination
// How get list of actions?
val appActions = listOf(
R.id.action_portfolioFragment_to_testFragment
)
portfolio_app_list.layoutManager = LinearLayoutManager(context)
portfolio_app_list.adapter = PortfolioAdapter(appActions)
}
}
Я не смог найти ни методов на NavGraph
, ни NavDestination
, чтобы получить список действий доступно для currentDestination
. Я знаю, что у моего navigation_main.xml
они есть, и я мог бы использовать XMLPullParser
или что-то подобное, чтобы получить их, но я могу начать использовать плагин Safe Args , который мы будем иметь в виду, что получая реальный класс от XML будет боль.