이 영역을 누르면 첫 페이지로 이동
CodeJUN 블로그의 첫 페이지로 이동

CodeJUN

페이지 맨 위로 올라가기

CodeJUN

심심해서 하는 블로그

BottomNavigationView 애니메이션 제거하기

  • 2018.07.22 23:08
  • Android

우연히 앱을 개발하다가 BottomNavigationView를 쓸 일이 왔다. 막상 적용하고 나니 애니메이션이 너무 크게 일어나기에 보기가 싫었다.(...) 이를 없애기 위해 구글링을 한 결과, 따로 메서드는 없는 것 같고 새로 클래스를 생성해서 없애주는 방법은 있었다. 해당 애니메이션은 ShiftingMode라고 불리우는것 같은데 이를 없애줄 수 있다.


public class BottomNavigationViewHelper {
@SuppressLint("RestrictedApi")
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);
}
}
}

Helper클래스를 생성해 위와 같은 소스를 추가해 준 뒤, Activity클래스에서 아래 소스를 추가해 준다.

BottomNavigationViewHelper.disableShiftMode(binding.navigation); //delete animation

나는 DataBinding을 적용했기 때문에 저렇게 뜨는 것인데, 괄호 안에는 그냥 BottomNavigationView를 지정해 주면 된다.


그럼 이상 없이 작동 되는 모습을 볼 수 있다.

저작자표시 비영리 동일조건 (새창열림)

'Android' 카테고리의 다른 글

Google Play Service Check(확인)하기  (0) 2018.07.25
인터넷 연결 상태 확인하기  (0) 2018.07.23
Magellan(마젤란) 사용하기  (0) 2018.07.19
RecyclerView에서 원하는 항목 item 제거하기  (0) 2018.07.17
Google I/O Extended Seoul 참가 후기  (0) 2018.06.12

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • Google Play Service Check(확인)하기

    Google Play Service Check(확인)하기

    2018.07.25
  • 인터넷 연결 상태 확인하기

    인터넷 연결 상태 확인하기

    2018.07.23
  • Magellan(마젤란) 사용하기

    Magellan(마젤란) 사용하기

    2018.07.19
  • RecyclerView에서 원하는 항목 item 제거하기

    RecyclerView에서 원하는 항목 item 제거하기

    2018.07.17
다른 글 더 둘러보기

정보

CodeJUN 블로그의 첫 페이지로 이동

CodeJUN

  • CodeJUN의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 방명록

카테고리

  • 분류 전체보기 (54)
    • Android (38)
    • BlockChain (4)
    • React Native (4)
    • 아두이노 (2)
    • 프로젝트 (6)

공지사항

  • 공지 - 블로그를 시작하며

태그

  • 강좌
  • C
  • c++
  • 안드로이드
  • Android
  • arduino
  • 아두이노
  • Firebase

나의 외부 링크

  • Github

정보

CODE_JUN의 CodeJUN

CodeJUN

CODE_JUN

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © CODE_JUN. Designed by Fraccino.

티스토리툴바