MutableLiveData는 Abstract Class 인 LiveData를 구현한 Public Class 위 말을 풀어 보면, 1. LiveData는 추상 클래스이므로 직접 생성할 수 없다. public abstract class LiveData { protected void postValue(T value) {} @MainThread protected void setValue(T value) {} //데이터 수정은 pretected 메서드를 구현해서 사용해야 한다. } val name : LiveData = LiveData() 위와 같이 직접 생성할 경우 아래와 같이 에러가 발생한다. cannot create an instance of an abstract class 반면에 MutableLiveDa..

위와 같이 아래 영역을 넘어가게 되어 하단에 버튼등을 고정 시킬 경우 보이지 않는 문제가 발생한다. 1. viewpager의 marginBottom="?actionBarSzie" 로 하게 될 경우 버튼은 보이지만 스크롤 할 경우 같이 올라가며 하단 빈 영역이 보이게 된다. 2. Tab과 CollapsingToolbarLayout 를 사용 할 경우 다른 레이아웃으로 감싸주면 스크롤 범위가 영역과 맞아져저 해결은 되지만, 탭의 구성이 찌그러지게 된다. 즉, CoordinatorLayout 아래 다른 레이아웃으로 감싸면 안됨. 3. 원인은 app:layout_behavior="@string/appbar_scrolling_view_behavior" 뷰 페이저의 스크롤링을 적용했기 때문에 하단으로 더 길게 스크롤..
아래 코드를 navController = Navigation.findNavController(this, R.id.fragment_navi_dashboard_host); 요렇게 바꾸어야 함 NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager() .findFragmentById(R.id.fragment_navi_dashboard_host); NavController navController = navHostFragment.getNavController();
벡터 문제도 아니고, xml 문제도 아니고, gradle 문제도 아니면, context 문제다. Drawable drawable = ContextCompat.getDrawable(getApplicationConetxt(), R.drawable.ic_arrow_back_white_24dp); 아래와 같이 this 로 바꿔야 한다. Drawable drawable = ContextCompat.getDrawable(this, R.drawable.ic_arrow_back_white_24dp);
Room 에서 DB 가 만들어지고, 초기화를 할 때 OnCreate() 에서 아래와 같이 워커를 불러서 작업을 하는데, val request = OnTimeWorkRequestBuilder().build() WorkManager.getInstance(context).enqueue(request) enqueue 에 작업을 넣으려고 하면 아래와 같이 요상한 에러가 난다. 아무리 인터넷을 뒤져도 답이 없다. E/AndroidRuntime: FATAL EXCEPTION: arch_disk_io_0 java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/work/impl/utils/futures/AbstractFuture; Caused by: java.l..