延迟后自动改变片段的方式

vin*_*aba 2 android android-fragments

我的应用程序以 FragmentA 开头。我希望 FragmentA 出现 5 秒钟,然后显示另一个 FragmentB 替换 FragmentA。

我已通过以下方式显示 FragmentA:

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        FragmentA  frag = new FragmentA();
        FragmentManager fm = getSupportFragmentManager();       
        FragmentTransaction ft = fm.beginTransaction().add(R.id.fl,frag); 

        ft.commit();
Run Code Online (Sandbox Code Playgroud)

不知道在这之后该怎么办。

Nil*_*ngh 5

最初调用

getSupportFragmentManager().beginTransaction()
            .replace(R.id.fl, new FragmentA())
            .commit();
Run Code Online (Sandbox Code Playgroud)

之后,添加以下内容:

Handler handler = new Handler();
Runnable runnable = new Runnable() {
          @Override
          public void run() {
             //Second fragment after 5 seconds appears
             getSupportFragmentManager().beginTransaction()
                 .replace(R.id.fl, new FragmentB())
                 .commit();
          }
    };

handler.postDelayed(runnable, 5000);
Run Code Online (Sandbox Code Playgroud)

更新:只需从 Handler 中删除 runnable 以防止在活动被销毁后执行 runnable。

@Override
   public void onDestroy () {
     handler.removeCallbacks(runnable);
     super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)