Supportfragmentmanager Container: Oncreate
Supportfragmentmanager Container: Oncreate
activities
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.appcompat.app.AppCompatActivity
import android.util.Log
import android.view.MenuItem
import android.view.View
import com.ncapdevi.fragnav.FragNavController
import com.ncapdevi.fragnav.FragNavLogger
import com.ncapdevi.fragnav.FragNavSwitchController
import com.ncapdevi.fragnav.FragNavTransactionOptions
import com.ncapdevi.fragnav.tabhistory.UniqueTabHistoryStrategy
import com.ncapdevi.sample.R
import com.ncapdevi.sample.fragments.*
import com.roughike.bottombar.BottomBar
bottomBar = findViewById(R.id.bottomBar)
fragNavController.apply {
transactionListener = this@BottomTabsActivity
rootFragmentListener = this@BottomTabsActivity
createEager = true
fragNavLogger = object : FragNavLogger {
override fun error(message: String, throwable: Throwable) {
Log.e(TAG, message, throwable)
}
}
defaultTransactionOptions =
FragNavTransactionOptions.newBuilder().customAnimations(R.anim.slide_in_from_ri
ght, R.anim.slide_out_to_left, R.anim.slide_in_from_left,
R.anim.slide_out_to_right).build()
fragmentHideStrategy =
FragNavController.DETACH_ON_NAVIGATE_HIDE_ON_SWITCH
navigationStrategy = UniqueTabHistoryStrategy(object :
FragNavSwitchController {
override fun switchTab(index: Int, transactionOptions:
FragNavTransactionOptions?) {
bottomBar.selectTabAtPosition(index)
}
})
}
fragNavController.initialize(INDEX_NEARBY, savedInstanceState)
bottomBar.setOnTabReselectListener { fragNavController.clearStack() }
}
supportActionBar?.setDisplayHomeAsUpEnabled(fragNavController.isRootFragment.no
t())
supportActionBar?.setDisplayHomeAsUpEnabled(fragNavController.isRootFragment.no
t())
companion object {
private val TAG = BottomTabsActivity::class.java.simpleName
}
}
package com.ncapdevi.sample.activities
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.appcompat.app.AppCompatActivity
import android.util.Log
import android.view.MenuItem
import android.view.View
import com.ncapdevi.fragnav.FragNavController
import com.ncapdevi.fragnav.FragNavLogger
import com.ncapdevi.fragnav.FragNavSwitchController
import com.ncapdevi.fragnav.FragNavTransactionOptions
import com.ncapdevi.fragnav.tabhistory.UniqueTabHistoryStrategy
import com.ncapdevi.sample.R
import com.ncapdevi.sample.fragments.*
import com.roughike.bottombar.BottomBar
bottomBar = findViewById(R.id.bottomBar)
fragNavController.apply {
transactionListener = this@BottomTabsActivity
rootFragmentListener = this@BottomTabsActivity
createEager = true
fragNavLogger = object : FragNavLogger {
override fun error(message: String, throwable: Throwable) {
Log.e(TAG, message, throwable)
}
}
defaultTransactionOptions =
FragNavTransactionOptions.newBuilder().customAnimations(R.anim.slide_in_from_ri
ght, R.anim.slide_out_to_left, R.anim.slide_in_from_left,
R.anim.slide_out_to_right).build()
fragmentHideStrategy =
FragNavController.DETACH_ON_NAVIGATE_HIDE_ON_SWITCH
navigationStrategy = UniqueTabHistoryStrategy(object :
FragNavSwitchController {
override fun switchTab(index: Int, transactionOptions:
FragNavTransactionOptions?) {
bottomBar.selectTabAtPosition(index)
}
})
}
fragNavController.initialize(INDEX_NEARBY, savedInstanceState)
bottomBar.setOnTabReselectListener { fragNavController.clearStack() }
}
}
override fun pushFragment(fragment: Fragment, sharedElementList:
List<Pair<View, String>>?) {
val options = FragNavTransactionOptions.newBuilder()
options.reordering = true
sharedElementList?.let {
it.forEach { pair ->
options.addSharedElement(pair)
}
}
fragNavController.pushFragment(fragment, options.build())
supportActionBar?.setDisplayHomeAsUpEnabled(fragNavController.isRootFragment.no
t())
supportActionBar?.setDisplayHomeAsUpEnabled(fragNavController.isRootFragment.no
t())
companion object {
private val TAG = BottomTabsActivity::class.java.simpleName
}
}
package com.ncapdevi.sample.activities
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.appcompat.app.AppCompatActivity
import android.util.Log
import android.view.MenuItem
import android.view.View
import com.ncapdevi.fragnav.FragNavController
import com.ncapdevi.fragnav.FragNavLogger
import com.ncapdevi.fragnav.FragNavSwitchController
import com.ncapdevi.fragnav.FragNavTransactionOptions
import com.ncapdevi.fragnav.tabhistory.UniqueTabHistoryStrategy
import com.ncapdevi.sample.R
import com.ncapdevi.sample.fragments.*
import com.roughike.bottombar.BottomBar
bottomBar = findViewById(R.id.bottomBar)
fragNavController.apply {
transactionListener = this@BottomTabsActivity
rootFragmentListener = this@BottomTabsActivity
createEager = true
fragNavLogger = object : FragNavLogger {
override fun error(message: String, throwable: Throwable) {
Log.e(TAG, message, throwable)
}
}
defaultTransactionOptions =
FragNavTransactionOptions.newBuilder().customAnimations(R.anim.slide_in_from_ri
ght, R.anim.slide_out_to_left, R.anim.slide_in_from_left,
R.anim.slide_out_to_right).build()
fragmentHideStrategy =
FragNavController.DETACH_ON_NAVIGATE_HIDE_ON_SWITCH
navigationStrategy = UniqueTabHistoryStrategy(object :
FragNavSwitchController {
override fun switchTab(index: Int, transactionOptions:
FragNavTransactionOptions?) {
bottomBar.selectTabAtPosition(index)
}
})
}
fragNavController.initialize(INDEX_NEARBY, savedInstanceState)
bottomBar.setOnTabReselectListener { fragNavController.clearStack() }
}
supportActionBar?.setDisplayHomeAsUpEnabled(fragNavController.isRootFragment.no
t())
supportActionBar?.setDisplayHomeAsUpEnabled(fragNavController.isRootFragment.no
t())
}
override fun getRootFragment(index: Int): Fragment {
when (index) {
INDEX_RECENTS -> return RecentsFragment.newInstance(0)
INDEX_FAVORITES -> return FavoritesFragment.newInstance(0)
INDEX_NEARBY -> return NearbyFragment.newInstance(0)
INDEX_FRIENDS -> return FriendsFragment.newInstance(0)
INDEX_FOOD -> return FoodFragment.newInstance(0)
}
throw IllegalStateException("Need to send an index that we know")
}
companion object {
private val TAG = BottomTabsActivity::class.java.simpleName
}
}