findFragmentById возвращает ноль для фрагмента после перехода на AndroidX - PullRequest
0 голосов
/ 05 февраля 2019

После миграции на AndroidX findFragmentById (также findFragmentByTag) начал возвращать ноль, когда я пытался получить фрагмент.

Фрагмент добавляется в 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() {
...
}

и Activity выглядит так:

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)

или

supportFragmentManager.findFragmentByTag(R.id.tag_fragment)

оба возвращают ноль.Я также попытался использовать только fragManager с нулевым результатом, и он все равно не будет работать, потому что он возвращает простой фрагмент, а не androidx.

Спасибо за любой совет

1 Ответ

0 голосов
/ 05 февраля 2019

индексный доступ, например fm.getFragments().get(0) или fm.getFragments().get(1), может работать.

, а если нет, он может не найти его, потому что он еще не был добавлен(проблема времени).

fm.getFragments() как минимум полезен, чтобы увидеть, что еще доступно, в текущий момент времени.

...