본문 바로가기

Android90

Handler의 Deprecated 대응 Handler가 Deprecated되었다. 근데 뭐 해결방법은 간단하다. Handler mHandler = new Handler(Looper.getMainLooper()) { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 0: // Do something! break; case 1: // Do something! break; } } }; 이렇게 생성자에 Looper.getMainLooper()를 넣어주면 잘 동작한다. 2021. 11. 8.
getNetworkInfo deprecated 대응 (네트워크 연결상태 확인 구현) ConnectivityManager의 getNetworkInfo가 depreacted 되었다. 물론 좀 된 얘기지만.. 아무튼 그래서 네트워크 연결 상태를 확인하는 코드를 다음과 같이 구현하였다. public boolean isNetWorkAvailable(Context context) { try { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { // Q 이상은 이렇게 대응 해야함 NetworkCapabilities networkType = connectiv.. 2021. 11. 5.
ViewPager2의 swipe listener (Call back) 튜토리얼? 최초 실행때 앱 설명 보여주는 액티비티에 쓰면 좋다. 이 callback은 즉각적으로 반응해서 버튼 노출 유무를 구현할 때 좋다. tutorialPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { @Override public void onPageSelected(int position) { super.onPageSelected(position); if (position != PAGE_NUM - 1) { sampleBtn.setVisibility(View.GONE); } else { sampleBtn.setVisibility(View.VISIBLE); } } }); 2021. 11. 5.
BottomNavigationView + ViewPager2에서 swipe 안되게 하기 viewPager2.setUserInputEnabled(false); 이렇게 하면 swipe해서 다음 페이지로 넘어가는게 안된다. 또 BottomNavigationView에서 메뉴 클릭하면 setCurrentItem을 실행하며 애니메이션을 보여주는데 끄는 방법은 bottomNavigation.setOnItemSelectedListener(item - > { switch (item.getItemId()) { case R.id.sample_tap: viewPager2.setCurrentItem(0, false); break; case R.id.test_tap: viewPager2.setCurrentItem(1, false); break; } 이렇게 호출할때 false를 주면 애니메이션이 발생하지 않는다. 2021. 11. 5.