How to Use Fragment Kotlin Extensions in Java Class Libraries
groovy
dependencies {
implementation 'androidx.fragment:fragment-ktx:1.3.0'
}
kotlin
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentTransaction
import androidx.fragment.app.commit
fun FragmentManager.transact(action: FragmentTransaction.() -> Unit) {
beginTransaction().apply {
action()
commit()
}
}
fun FragmentManager.addFragment(containerId: Int, fragment: Fragment, tag: String) {
transact {
add(containerId, fragment, tag)
}
}
fun FragmentManager.replaceFragment(containerId: Int, fragment: Fragment, tag: String) {
transact {
replace(containerId, fragment, tag)
}
}
import androidx.fragment.app.Fragment;
import static com.example.myapplication.MyFragmentKt.*;
public class MainActivity {
private FragmentManager fragmentManager;
public void addFragmentToContainer() {
fragmentManager.addFragment(R.id.container, new MyFragment(), "MyFragment");
}
public void replaceFragmentInContainer() {
fragmentManager.replaceFragment(R.id.container, new MyFragment(), "MyFragment");
}
}