用studio开发一个日记APP,要有动态添加fragment,并实现fragment切换,有三个底部导航栏
时间: 2024-05-02 07:17:10 浏览: 97
动态底部导航栏,微信小程序、H5和APP通用
好的,以下是实现步骤:
1. 创建一个新的Android Studio项目,选择Empty Activity作为初始模板。
2. 在app/build.gradle文件中添加以下依赖项:
```gradle
implementation 'com.google.android.material:material:1.2.1'
```
3. 创建三个Fragment,分别用于显示日记、添加日记和设置。
4. 在res/layout文件夹中创建一个名为activity_main.xml的布局文件,用于包含底部导航栏和Fragment容器。
5. 在MainActivity.java中设置底部导航栏和Fragment容器。
```java
public class MainActivity extends AppCompatActivity {
private BottomNavigationView bottomNavigationView;
private FrameLayout frameLayout;
private DiaryFragment diaryFragment;
private AddDiaryFragment addDiaryFragment;
private SettingFragment settingFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bottomNavigationView = findViewById(R.id.bottom_navigation);
frameLayout = findViewById(R.id.fragment_container);
diaryFragment = new DiaryFragment();
addDiaryFragment = new AddDiaryFragment();
settingFragment = new SettingFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, diaryFragment).commit();
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_diary:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, diaryFragment).commit();
return true;
case R.id.navigation_add:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, addDiaryFragment).commit();
return true;
case R.id.navigation_setting:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, settingFragment).commit();
return true;
}
return false;
}
});
}
}
```
6. 在res/menu文件夹中创建一个名为bottom_navigation.xml的菜单文件,用于定义底部导航栏的菜单项。
```xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_diary"
android:icon="@drawable/ic_diary"
android:title="@string/menu_diary" />
<item
android:id="@+id/navigation_add"
android:icon="@drawable/ic_add"
android:title="@string/menu_add" />
<item
android:id="@+id/navigation_setting"
android:icon="@drawable/ic_setting"
android:title="@string/menu_setting" />
</menu>
```
7. 在activity_main.xml布局文件中添加底部导航栏和Fragment容器。
```xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/bottom_navigation" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:menu="@menu/bottom_navigation" />
</RelativeLayout>
```
8. 运行应用程序,测试底部导航栏和Fragment切换功能。
这样就完成了一个简单的日记APP的开发。需要注意的是,这只是一个简单的示例,实际开发中还需要考虑更多的细节问题。
阅读全文