android开发 笔记(2.12)
1.碎片的简单使用方法
简单实例:
(1)left_fragment.xml:
(2)right_fragment.xml
(3)LeftFragment.java
(4)RightFragment.java
(5)activity_main.xml
使用fragment标签用来添加碎片,其实android:name一定要把类的包名加上
(6)MainActivity.java不变
运行结果如图:
2.动态添加碎片
碎片真正的强大在于它可以在程序运行时动态的添加到活动之中
动态添加碎片主要分为5⃣️步:
相关例子参考:
在上面的例子做些修改:
添加
another_right_fragment.xml
AnotherRightFragment.java
main_activity.xml:
与上面的例子区别是右边的碎片替换成FrameLayout
修改MainActivity中的代码:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button) findViewById(R.id.button);
button.setOnClickListener(this);
replaceFragment(new RightFragment());
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button:
replaceFragment(new AnotherRightFragment());
break;
default:
break;
}
}
private void replaceFragment(Fragment fragment){
FragmentManager fragmentManager=getSupportFragmentManager();
FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.right_layout,fragment);
fragmentTransaction.commit();
}
}
3.模拟返回栈
4.碎片和活动之间的通信
1.活动中调用碎片:
FragmentManager提供了一个类似findViewById()的方法,专门用于从布局文件中获取实例
调用FragmentManager的findFragmentById()方法可以在活动中得到相应实例
2.碎片中调用活动中的方法
每个碎片都可以调用getActivity()方法得到和当前碎片相关联的实例
比如:
有了活动实例后再调用活动中的方法就轻而易举了
3.关于碎片与碎片之间的通信
首先在一个碎片中得到与他相关的活动,然后通过这个活动来获取另一个碎片的实例,从而实现了两个碎片相互通信的功能