android 左侧导航栏
时间: 2023-07-18 19:33:57 浏览: 67
Android 左侧导航栏通常使用 DrawerLayout 实现,具体步骤如下:
1. 在布局文件中,使用 DrawerLayout 作为根布局,将主界面和侧滑菜单分别添加到 DrawerLayout 中。
2. 在主界面中添加一个 ActionBar,通过设置 ActionBar 的 Home 按钮可以打开或关闭侧滑菜单。
3. 在代码中设置 DrawerLayout.DrawerListener 监听器,监听侧滑菜单的打开或关闭事件。
示例代码如下:
```
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- 主界面 -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- 侧滑菜单 -->
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#fff" />
</android.support.v4.widget.DrawerLayout>
```
在 Activity 中,可以通过以下代码设置 ActionBar:
```
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeAsUpIndicator(R.drawable.ic_menu);
}
```
其中,setDisplayHomeAsUpEnabled(true) 表示显示 Home 按钮,setHomeAsUpIndicator(R.drawable.ic_menu) 表示设置 Home 按钮的图标。
设置 DrawerLayout.DrawerListener 监听器的代码如下:
```
DrawerLayout drawerLayout = findViewById(R.id.drawer_layout);
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {
// 侧滑菜单正在滑动
}
@Override
public void onDrawerOpened(@NonNull View drawerView) {
// 侧滑菜单已经打开
}
@Override
public void onDrawerClosed(@NonNull View drawerView) {
// 侧滑菜单已经关闭
}
@Override
public void onDrawerStateChanged(int newState) {
// 侧滑菜单状态发生改变
}
});
```
注意:这里的示例代码使用的是 Support Library,如果使用的是 AndroidX,需要将包名从 android.support 改为 androidx。