После перехода на AndroidX findFragmentById (также findFragmentByTag) начал возвращать значение null, когда я пытался получить фрагмент.
Фрагмент добавляется в XML следующим образом:
<fragment
android:id="@+id/id_fragment"
android:tag="tag_fragment"
android:name="com.blaa.MyFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Фрагмент выглядит так:
class MyFragment : androidx.fragment.app.Fragment() {
...
}
и активность выглядит так:
class MyActivity : AppCompatActivity(){
...
}
зависимости:
...
implementation "androidx.appcompat:appcompat:1.0.2"
implementation "androidx.legacy:legacy-support-v4:1.0.0"
implementation "com.google.android.material:material:1.1.0-alpha03"
...
и вот как я это называю внутри кода:
supportFragmentManager.findFragmentById(R.id.id_fragment)
or
supportFragmentManager.findFragmentByTag(R.id.tag_fragment)
оба возвращают ноль. Я также пытался использовать только fragmentManager с нулевым результатом, и он все равно не будет работать, потому что он возвращает простой фрагмент, а не androidx.
Спасибо за любой совет
android.useAndroidX=true
иandroid.enableJetifier=true
к своемуgradle.properties
? - person Wang   schedule 05.02.2019name
явно ссылается на экземплярandroidx.fragment.app.Fragment
... аandroidx
не что иное, как переупакованная библиотека поддержки. пространство имен - единственное отличие, в то время как jetifier преобразует пространство имен сторонних библиотек. - person Martin Zeitler   schedule 05.02.2019