У меня есть грязный хак для этого,
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.firstItem:
underlineSelectedItem(bottomNavigationView, R.id.firstItem);
break;
return false;
}
});
Используйте этот метод,
private void underlineSelectedItem(BottomNavigationView bottomNavigationView, int selectedID) {
for (int i = 0; i < bottomNavigationView.getMenu().size(); i++) {
MenuItem menuItem = bottomNavigationView.getMenu().getItem(i);
menuItem.setTitle(menuItem.getTitle().toString().replaceAll("[<u>/]", ""));
}
MenuItem menuItem = bottomNavigationView.getMenu().findItem(selectedID);
String currentText = (String) menuItem.getTitle();
String convertedText = "<u>" + currentText + "</u>";
menuItem.setTitle(Html.fromHtml(convertedText));
}
Я знаю, что это несколько уродливо, но я думаю, что нет другого способа сделать это.