Как я могу получить доступ к supportActionBar изнутри Source_name.kt Исходный файл с Kotlin - PullRequest
1 голос
/ 14 октября 2019

В моем файле MainActivity.kt я могу получить доступ к supportActionBar.title и установить заголовок.

В TitleScreenFragment.kt я не могу получить доступ:

activity.supportActionBar.title

и когда я пытаюсьпросто используйте activity.actionBar.title, это значение равно нулю.

Как мне получить доступ к activity.supportActionBar.title из моего кода фрагмента?

MainActivity.kt:

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)



    val binding  = DataBindingUtil.setContentView<ActivityMainBinding>(this,
        R.layout.activity_main)

    val navController = this.findNavController(R.id.nav_host_fragment)

    NavigationUI.setupActionBarWithNavController(this, navController)

    //THIS WORKS HOW DO I ACCESS THIS FUNCTIONALITY FROM FRAGMENT CODE???
    supportActionBar?.title = "Ingredient Display"
}

override fun onSupportNavigateUp(): Boolean {
    val navController = this.findNavController(R.id.nav_host_fragment)
    return navController.navigateUp()
}

}

TitleScreenFragment.kt

    class TitleScreenFragment : Fragment() {

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

    // Setup the binding object with the layout and inflate it

    val binding = DataBindingUtil.inflate<FragTitleBinding>(inflater, R.layout.frag_title, container, false)

    // Set navigation action as an onclicklistener for button
    binding.btnBeginInput.setOnClickListener{
        view?.findNavController()?.navigate(R.id.action_titleScreenFragment_to_ingredientInputFragment)

    }

    //THIS IS NULL
    println(activity?.actionBar?.title)

    // return the inflated object in the binding

    return binding.root
    }
}

1 Ответ

0 голосов
/ 14 октября 2019

Вы можете использовать что-то вроде:

(activity as AppCompatActivity).supportActionBar?.title = "Ingredient Display"

в методе onViewCreated (не в onCreateView).

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