안드로이드 스튜디오 bottom navigation & WebView - 두번째
오늘은 메뉴 아이콘 변경과 메뉴가 3개 이상일 때 애니메이션 제거하는 방법.
Bar 아이콘은 마우스 오른쪽 - new - vector Asset - 원하는 아이콘.
menu - navigation.xml 에 수정.
메뉴가 3개 이상일 때...
BottomNavigationViewHelper.java
import android.support.design.internal.BottomNavigationItemView;
import android.support.design.internal.BottomNavigationMenuView;
import android.support.design.widget.BottomNavigationView;
import android.util.Log;
import java.lang.reflect.Field;
public class BottomNavigationViewHelper {
public static void disableShiftMode(BottomNavigationView view) {
BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0);
try {
Field shiftingMode = menuView.getClass().getDeclaredField("mShiftingMode");
shiftingMode.setAccessible(true);
shiftingMode.setBoolean(menuView, false);
shiftingMode.setAccessible(false);
for (int i = 0; i < menuView.getChildCount(); i++) {
BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
//noinspection RestrictedApi
item.setShiftingMode(false);
// set once again checked value, so view will be updated
//noinspection RestrictedApi
item.setChecked(item.getItemData().isChecked());
}
} catch (NoSuchFieldException e) {
Log.e("BNVHelper", "Unable to get shift mode field", e);
} catch (IllegalAccessException e) {
Log.e("BNVHelper", "Unable to change value of shift mode", e);
}
}
}
MainActivity에 추가
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
BottomNavigationViewHelper.disableShiftMode(navigation);
'android' 카테고리의 다른 글
[android] BottomNavigationView 첫번째 (0) | 2018.04.09 |
---|---|
안드로이드 스튜디오 bottom navigation & WebView - 세번째 (0) | 2018.03.09 |
안드로이드 스튜디오 bottom navigation & WebView - 첫번째 (0) | 2018.03.05 |
file-based resource names a-z 0-9 안드로이드 스튜디오 error (0) | 2018.02.24 |
브라우저에서 어플 불러오기 (0) | 2018.02.14 |