编写一个Android项目实现fragment切换
时间: 2024-05-09 10:20:02 浏览: 100
1. 创建项目:新建一个Android项目,选择Empty Activity模板。
2. 添加Fragment:右键点击app目录,New -> Fragment -> Fragment(Blank)。创建两个Fragment,分别为Fragment1和Fragment2。
3. 编写布局文件:在res/layout文件夹下创建activity_main.xml文件,添加一个FrameLayout作为容器,用于切换Fragment。
```
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_fragment1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fragment1"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_fragment2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fragment2"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
```
4. 编写Fragment:分别在Fragment1和Fragment2的布局文件中添加一个TextView,用于区分两个Fragment。
```
<!--fragment1.xml-->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Fragment1"
android:gravity="center"/>
<!--fragment2.xml-->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Fragment2"
android:gravity="center"/>
```
5. MainActivity中添加Fragment:在MainActivity中使用FragmentManager添加Fragment1。
```
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Fragment1 fragment1;
private Fragment2 fragment2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragment1 = new Fragment1();
fragment2 = new Fragment2();
getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, fragment1).commit();
findViewById(R.id.btn_fragment1).setOnClickListener(this);
findViewById(R.id.btn_fragment2).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_fragment1:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment1).commit();
break;
case R.id.btn_fragment2:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment2).commit();
break;
}
}
}
```
6. 运行程序:点击按钮可以切换Fragment1和Fragment2。
注:以上代码仅供参考,可能存在语法错误或者逻辑问题。
阅读全文