Android Fragments 如何在堆栈改变时调用Fragment中的方法

k7fdbhmy  于 2023-02-23  发布在  Android
关注(0)|答案(2)|浏览(185)

我有2个片段片段A和片段B
从片段A打开片段B

val transaction = fragmentManager.beginTransaction()
transaction.add(CONTAINER_VIEW_ID, FRAGMENT_B_INSTANCE, FRAGMENT_B_TAG)
transaction.addToBackStack(null)
transaction.commit()

用户可以通过按下自定义返回按钮和按下电话返回按钮两种方式返回FragmentA。自定义按钮调用以下方法。

fragmentManager.popBackStack()

FragmentB是使用API调用的用户添加表单,FragmentA onResume我调用用户列表API并显示用户列表。在FragmentB中添加用户后,当返回到FragmentA时,我需要再次调用FragmentA onResume中的API或FragmentA中的自定义方法以获取最新用户列表。(* 由于在此场景中未调用Activity onResume,因此FragmentA onResume不会调用 *)
我该怎么做呢?

xtfmy6hx

xtfmy6hx1#

如果你不想回到FragmentA,那么当你转到FragmentB时,你必须从堆栈中移除。因此,以这种方式从FragmentA移动到FragmentB和FragmentC,但是在从FragmentC返回到FragmentB时不移动到FragmentA

0dxa2lsx

0dxa2lsx2#

存在调用恢复函数的方法
活动中

public class MainActivity extends AppCompatActivity {

@Override
protected void onPostResume() {
    super.onPostResume();
}

在片段中

public class MainFragment extends Fragment {

@Override
public void onResume() {
    super.onResume();
}

希望这对恢复工作有用😊

相关问题