Android高仿qq及微信底部菜单的几种实现方式
Android 高仿 QQ 及微信底部菜单的几种实现方式
在 Android app 开发中,底部菜单是一个非常常见的组件。QQ 和微信等社交应用的底部菜单设计风格也很受欢迎。今天,我们将讨论如何高仿这些应用的底部菜单。
1. 使用 DrawerLayout
`DrawerLayout` 是 Android 提供的一个布局类,可以实现侧滑抽屉效果。我们可以使用 `DrawerLayout` 来实现 QQ 或微信风格的底部菜单。
```xml android:layout_width="match_parent" android:layout_height="match_parent"> android:layout_height="match_parent" android:orientation="vertical"> android:layout_width="match_parent" android:layout_height="wrap_content" android:background="FFFFFF" android:orientation="horizontal">
```
```javapublic class MainActivity extends AppCompatActivity {
private DrawerLayout mDrawerLayout;
private LinearLayout mBottomMenuLayout;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDrawerLayout = findViewById(R.id.drawer_layout);
mBottomMenuLayout = findViewById(R.id.bottom_menu_layout);
// 初始化底部菜单项 // 设置侧滑抽屉效果 mDrawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
@Override public void onDrawerSlide(View view, float slideOffset) {
}
@Override public void onDrawerOpened(View view) {
}
@Override public void onDrawerClosed(View view) {
}
@Override public boolean onDrawerStateChanged(int newState) {
return false;
}
});
}
}
```
2. 使用 CoordinatorLayout
`CoordinatorLayout` 是 Android 提供的一个布局类,可以实现协调布局效果。我们可以使用 `CoordinatorLayout` 来实现 QQ 或微信风格的底部菜单。
```xml android:layout_width="match_parent" android:layout_height="match_parent"> android:layout_height="match_parent" android:orientation="vertical"> android:layout_width="match_parent" android:layout_height="wrap_content" android:background="FFFFFF" android:orientation="horizontal">
```
```javapublic class MainActivity extends AppCompatActivity {
private CoordinatorLayout mCoordinatorLayout;
private LinearLayout mBottomMenuLayout;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCoordinatorLayout = findViewById(R.id.coordinator_layout);
mBottomMenuLayout = findViewById(R.id.bottom_menu_layout);
// 初始化底部菜单项 // 设置协调布局效果 mCoordinatorLayout.setBehavior(new CoordinatorLayout.Behavior() {
@Override public boolean layoutDependsOn(Context context, View view, ILayoutParameters parameters) {
return false;
}
@Override public void onDependentViewRemoved(View child) {
}
});
}
}
```
3. 使用自定义布局
我们可以使用自定义布局来实现 QQ 或微信风格的底部菜单。
```xml android:layout_width="match_parent" android:layout_height="match_parent"> android:layout_height="0dp" android:layout_weight="1" android:orientation="vertical"> android:layout_width="match_parent" android:layout_height="wrap_content" android:background="FFFFFF" android:orientation="horizontal">
```
```javapublic class MainActivity extends AppCompatActivity {
private LinearLayout mLayout;
private LinearLayout mBottomMenuLayout;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLayout = findViewById(R.id.layout);
mBottomMenuLayout = findViewById(R.id.bottom_menu_layout);
// 初始化底部菜单项 // 设置自定义布局效果 mLayout.setOrientation(LinearLayout.VERTICAL);
}
}
```
以上就是 Android 高仿 QQ 及微信底部菜单的几种实现方式。通过使用 `DrawerLayout`、`CoordinatorLayout` 或自定义布局,我们可以轻松地实现这些应用的风格。