android fragment切换标题,Android 包含-fragment 切换
之前讲过切换 Activity,也讲过多个 Fragment 左右滑动,不过那里讲的 fragment 滑动是利用模板,今天从纯手动的角度来讲一下 fragment 切换。首先、建立一个 Activity、两个 Fragment均包含代码文件和布局文件。然后、在 Activity的布局文件中放一个承载元素这个承载元素,比如就是LinearLayout,用以显示 Fragment的内容。另外我...
之前讲过切换 Activity,也讲过多个 Fragment 左右滑动,不过那里讲的 fragment 滑动是利用模板,今天从纯手动的角度来讲一下 fragment 切换。
首先、建立一个 Activity、两个 Fragment
均包含代码文件和布局文件。
然后、在 Activity 的布局文件中放一个承载元素
这个承载元素,比如就是 LinearLayout,用以显示 Fragment 的内容。
另外我们再放两个按钮,点击按钮时切换 Fragment。
最后、在 Activity 中写切换代码public class MainActivity extends AppCompatActivity {
frag1 f1 = new frag1();
frag2 f2 = new frag2();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, f1, "");
ft.commit();
}
});
Button button2 = (Button)findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, f2, "");
ft.commit();
}
});
}
}
上述代码中:container 为第二步中说的承载元素的 id;另外,new frag1()、new frag2() 可以改进一下,避免 Activity 加载的时候就初始化,不过最好不要每次 button 切换的时候都 new,因为这会导致原来 Fragment 中的状态(比如用户填写的内容)丢失。
有错误?
可能会遇到 ft.replace(R.id.container, f2, ""); 这里报第二个参数类型错误。
怎么解决呢?
我们进入 Fragment 这个代码页,将:
import android.support.v4.app.Fragment;
改为
import android.app.Fragment;
更多推荐
所有评论(0)