DrawerLayout全局侧滑栏添加侧滑栏多个Fragment显示隐藏实现方式
时间: 2024-05-13 16:18:30 浏览: 76
要在 DrawerLayout 中添加多个侧滑栏,可以使用一个布局来作为容器,然后在该容器中添加多个 Fragment。以下是一种实现方式:
1. 在布局文件中创建一个 DrawerLayout,并且在其中添加一个 FrameLayout 作为侧滑栏容器。
```xml
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 主布局 -->
<FrameLayout
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- 侧滑栏容器 -->
<FrameLayout
android:id="@+id/drawer_container"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start" />
</android.support.v4.widget.DrawerLayout>
```
2. 创建多个侧滑栏 Fragment,并且分别添加到侧滑栏容器中。
```java
// 添加第一个侧滑栏
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.drawer_container, new FirstDrawerFragment());
transaction.commit();
// 添加第二个侧滑栏
transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.drawer_container, new SecondDrawerFragment());
transaction.commit();
```
3. 在主布局中添加菜单按钮,点击菜单按钮时切换侧滑栏的显示和隐藏状态。
```java
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawerLayout.addDrawerListener(toggle);
toggle.syncState();
// 切换侧滑栏的显示和隐藏状态
navigationView.setNavigationItemSelectedListener(item -> {
drawerLayout.closeDrawer(GravityCompat.START);
return true;
});
```
这样就可以实现 DrawerLayout 中添加多个侧滑栏的功能了。需要注意的是,多个侧滑栏之间可能会有冲突,需要按照需求进行修改。
阅读全文