AndroidX 的 NavigationUI 不需要依赖 support-v4 库。DrawerLayout 也不需要依赖 support-v4 库。AndroidX 使用了新的依赖库 androidx.core,取代了旧的 support-v4 库。
以下是一个使用 AndroidX NavigationUI 和 DrawerLayout 的示例代码:
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'androidx.drawerlayout:drawerlayout:1.1.1'
implementation 'androidx.navigation:navigation-fragment:2.3.5'
implementation 'androidx.navigation:navigation-ui:2.3.5'
}
import androidx.appcompat.app.AppCompatActivity;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
public class MainActivity extends AppCompatActivity {
private DrawerLayout drawerLayout;
private NavController navController;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
drawerLayout = findViewById(R.id.drawer_layout);
navController = Navigation.findNavController(this, R.id.main_content);
// 设置导航菜单关联 DrawerLayout
NavigationUI.setupWithNavController(findViewById(R.id.nav_view), navController);
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(navController.getGraph())
.setDrawerLayout(drawerLayout)
.build();
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
}
@Override
public boolean onSupportNavigateUp() {
return NavigationUI.navigateUp(navController, drawerLayout)
|| super.onSupportNavigateUp();
}
}
这样就能够使用 AndroidX NavigationUI 和 DrawerLayout 实现导航菜单功能。请确保在 build.gradle 文件中使用正确的依赖库版本。