我的应用程序以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();
不确定在此之后该怎么做。
答案 0 :(得分:3)
如果您需要在延迟后运行一些代码,请使用Handler。 例如:
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
hideFragmentA();
showFragmentB();
}
}, 5000)
其中5000 - 以毫秒为单位的延迟
答案 1 :(得分:3)
最初致电
getSupportFragmentManager().beginTransaction()
.replace(R.id.fl, new FragmentA())
.commit();
然后添加:
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);
更新:只需从Handler中删除runnable,以防止在活动被销毁后执行runnable。
@Override
public void onDestroy () {
handler.removeCallbacks(runnable);
super.onDestroy();
}
答案 2 :(得分:1)
使用以下代码段替换片段:
FragmentB fragmentB= new FragmentB();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fl, fragmentB)
.commit();
如果您需要在5秒后进行片段替换,只需安排一个事件/任务5秒钟,当时间过去时,只需要进行更换。