图书

fragment 滑动是利用模板

  • Android 包含-include
  • Android 包含-fragment
  • Android 包含-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;

  • Android 包含-include
  • Android 包含-fragment
  • Android 包含-fragment 切换

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章