Younix's Studio.

SOP_控件_Fragment

字数统计: 194阅读时长: 1 min
2018/08/11 Share

Fragment 实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
protected void onCreate(Bundle savedInstanceState) {
...
// 1. 创建待添加 fragment 实例
replaceFragment(fragment1);
...
}

private void replaceFragment(Fragment fragment) {
// 2. 获取 FragmentManager
FragmentManager fragmentManager = getSupportFragmentManager();
// 3. 开启一个 事务 transaction
FragmentTransaction transaction = fragmentManager.beginTransaction();
// 4. 向容器内添加或者替换 fragment
// 参数1 容器id 参数2 待添加fragment实例
transaction.replace(R.id.right_layout, fragment);

// 添加到返回栈
// 参数为名字,用来描述返回栈的状态
transaction.addToBackStack(null);

// 5. 提交 事务 transaction
transaction.commit();
}

在 onClick 中使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
RightFragment fragment1 = new RightFragment();
AnotherRightFragment fragment2 = new AnotherRightFragment();

@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button1:
replaceFragment(fragment1);
break;
case R.id.button2:
replaceFragment(fragment2);
default:
break;
}
}

Fragment 和 Activity 通信

在 Activity 中调用 fragment 的方法 findFragmentById

1
RightFragment rightFragment = (RightFragment) getFragmentManager().findFragmentById(R.id.right_fragment);

在 Fragment 中调用 Activity 的方法

1
MainActivity activity = (MainActivity)getActivity();

Fragment 的生命周期

Fragment 生命周期

CATALOG
  1. 1. Fragment 实例
    1. 1.1. 在 onClick 中使用
  2. 2. Fragment 和 Activity 通信
    1. 2.1. 在 Activity 中调用 fragment 的方法 findFragmentById
    2. 2.2. 在 Fragment 中调用 Activity 的方法
  3. 3. Fragment 的生命周期