android底部导航栏中间凸起
时间: 2023-09-11 16:04:32 浏览: 422
在 Android 底部导航栏中间凸起的效果通常被称为 "BottomNavigationView 中间凸起" 或者 "BottomNavigationView 中间浮动按钮"。实现这个效果的一种方法是使用自定义的 BottomNavigationView 和 FloatingActionButton,然后将 FloatingActionButton 放置在 BottomNavigationView 的中间。具体步骤如下:
1. 在布局文件中添加 BottomNavigationView 和 FloatingActionButton:
```xml
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:itemIconTint="@drawable/bottom_nav_color_selector"
app:itemTextColor="@drawable/bottom_nav_color_selector"
app:labelVisibilityMode="unlabeled"
app:menu="@menu/bottom_navigation_menu"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|top"
android:src="@drawable/ic_add"
app:backgroundTint="@color/colorAccent"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
```
2. 创建一个 CoordinatorLayout,将 BottomNavigationView 和 FloatingActionButton 放置在其中。
3. 将 FloatingActionButton 的 layout_gravity 设置为 "center_horizontal|top",使其在 BottomNavigationView 的上方居中显示。
4. 在 BottomNavigationView 中间插入一个占位符,将 FloatingActionButton 的位置留出来:
```xml
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:itemIconTint="@drawable/bottom_nav_color_selector"
app:itemTextColor="@drawable/bottom_nav_color_selector"
app:labelVisibilityMode="unlabeled"
app:menu="@menu/bottom_navigation_menu">
<!-- 中间插入一个占位符 -->
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="56dp"/>
</com.google.android.material.bottomnavigation.BottomNavigationView>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|top"
android:src="@drawable/ic_add"
app:backgroundTint="@color/colorAccent"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
```
5. 在 BottomNavigationView 中间插入一个占位符,将 FloatingActionButton 的位置留出来。
6. 最后,在 Activity 或 Fragment 中设置 FloatingActionButton 的点击事件即可:
```java
FloatingActionButton fabAdd = findViewById(R.id.fab_add);
fabAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 处理点击事件
}
});
```
通过这种方法,你可以实现一个类似于 "BottomNavigationView 中间凸起" 的效果。
阅读全文