Cangoback в Webview всегда ложный в Android ⇐ Android
-
Anonymous
Cangoback в Webview всегда ложный в Android
Я реализовал ViewPager и TableAt в приложении. И одна из вкладки имеет basketrootfragment .class BasketRootFragment : Fragment() {
private lateinit var basketFrag: WebViewFragment
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_basket_root, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}
override fun setMenuVisibility(menuVisible: Boolean) {
super.setMenuVisibility(menuVisible)
if(menuVisible) {
if(::basketFrag.isInitialized.not()){
childFragmentManager.commit(allowStateLoss = true) {
val urlString = RemoteConfigRepository.getString(RemoteKey.url_basket).addBaseUrl()
val basketTabTitle = RemoteConfigRepository.getString(RemoteKey.trans_tab_basket)
basketFrag = WebViewFragment.forBasket(Triple(Screen.BASKET, basketTabTitle, urlString))
replace(R.id.fragment_container_view, basketFrag, WebViewFragment.TAG)
addToBackStack(WebViewFragment.TAG)
}
}
}
}
fun goBackInWeb(): Boolean = basketFrag.goBackInWeb()
fun canGoBackInWeb(): Boolean = basketFrag.canGoBackInWeb()
fun reload(restCaller: RestCaller) = basketFrag.reload(restCaller)
}
< /code>
Когда открывается другая ссылка из этого веб -просмотра, я обрабатываю его ниже, как < /p>
private fun shouldOverrideUrl(webView: WebView?, url: String): Boolean {
if(isBasketFragment() && url.isBasketUrl().not()){
webView?.loadUrl(url)
return true
}
return false
}
Нажмите на нажмите любой элемент внутри i return true для weadoverrideurl , но при проверке ниже функции
if(binding.webview.canGoBack()) { // it is always false.
binding.webview.goBack()
}
Подробнее здесь: https://stackoverflow.com/questions/773 ... in-android
Я реализовал ViewPager и TableAt в приложении. И одна из вкладки имеет basketrootfragment .class BasketRootFragment : Fragment() {
private lateinit var basketFrag: WebViewFragment
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_basket_root, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}
override fun setMenuVisibility(menuVisible: Boolean) {
super.setMenuVisibility(menuVisible)
if(menuVisible) {
if(::basketFrag.isInitialized.not()){
childFragmentManager.commit(allowStateLoss = true) {
val urlString = RemoteConfigRepository.getString(RemoteKey.url_basket).addBaseUrl()
val basketTabTitle = RemoteConfigRepository.getString(RemoteKey.trans_tab_basket)
basketFrag = WebViewFragment.forBasket(Triple(Screen.BASKET, basketTabTitle, urlString))
replace(R.id.fragment_container_view, basketFrag, WebViewFragment.TAG)
addToBackStack(WebViewFragment.TAG)
}
}
}
}
fun goBackInWeb(): Boolean = basketFrag.goBackInWeb()
fun canGoBackInWeb(): Boolean = basketFrag.canGoBackInWeb()
fun reload(restCaller: RestCaller) = basketFrag.reload(restCaller)
}
< /code>
Когда открывается другая ссылка из этого веб -просмотра, я обрабатываю его ниже, как < /p>
private fun shouldOverrideUrl(webView: WebView?, url: String): Boolean {
if(isBasketFragment() && url.isBasketUrl().not()){
webView?.loadUrl(url)
return true
}
return false
}
Нажмите на нажмите любой элемент внутри i return true для weadoverrideurl , но при проверке ниже функции
if(binding.webview.canGoBack()) { // it is always false.
binding.webview.goBack()
}
Подробнее здесь: https://stackoverflow.com/questions/773 ... in-android
Мобильная версия