본문 바로가기

프로그래밍/App 개발57

[Android] 'FragmentManager is already executing transactions' error when changing fragment of bottomnavigationview programmatically (AAC Navigation) bottomnavigationview의 fragment 를 강제로 바꿔주는 코드를 구현 중이었음. val bottomNav = activity?.findViewById(R.id.bottom_nav) bottomNav?.selectedItemId = R.id.dreamlist 근데 터짐. 어떻게 해결할 것인가. 먼저, navigation 이동 시에 fragment 재생성을 방지하도록 아래 코드(KeepStateNavigator) 를 사용하고 있었다. https://github.com/STAR-ZERO/navigation-keep-fragment-sample/blob/master/app/src/main/java/com/star_zero/navigation_keep_fragment_sample/navigati.. 2022. 3. 3.
비동기 작업 관리 회고, Type 과 State https://velog.io/@nathankim0/%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%9E%91%EC%97%85-%EA%B4%80%EB%A6%AC-%ED%9A%8C%EA%B3%A0-Type-%EA%B3%BC-State 2022. 2. 18.
[Android] How to dynamically change height of RecyclerView inside NestedScrollview when items are added or deleted NestedScrollview 안에 있는 RecyclerView의 높이를 아이템이 추가되거나 삭제될 때 동적으로 변경하는 방법 => item을 add 했을 때 size 변경이 안되는 모습 => item을 add 했을 때 size 변경이 잘 되는 모습. 어떻게? : size 변경할 시점에 view의 requestLayout() 을 호출한다. invlidate 는 size와 관련된 onMeasure을 호출하지 않기 때문에 높이가 변경되지 않는다. (onDraw 호출) requestLayout은 onMeasure 호출하기 때문에 size 변경 해줌. 아래 그림을 참고하자. 2022. 2. 16.
[Android] Custom DialogFragment 좌우 너비 꽉 차게 90% 90% % 조절해서 style에 넣으면 됨. (style 코드 참고) onCreate에 style을 지정해주세요. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setStyle(STYLE_NORMAL, R.style.ProfileNameEditTextDialogStyle) } 2022. 1. 27.
[Android] Custom DialogFragment EditText keyboard 가림 DialogFragment에 EditText가 있는 상태. EditText 포커싱되면서 Keyboard가 올라오는데 Dialog가 Resize 되지 않고 (밀려올라가는거) 그대로 있어서 키보드가 가려버리는 현상. style의 parent를 반드시 @android:style/Theme.Dialog 로 해야한다. * 주의 !!! ThemeOverlay.MaterialComponents.Dialog 로 하면 안됨. 이것땜에 삽질;;;;;; DialogFragment style은 onCreate에서 지정해주면된다. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setStyle(STYLE_NO_FRAME.. 2022. 1. 27.
[Android] Android Studio 가장 위로/아래로 커서 이동 단축키 변경 안드로이드 스튜디오 가장 위로/아래로 커서 어떻게 이동? 단축키 어떻게 변경? How do I navigate to the start or end of a file in Android Studio? How to change navigation KeyMap? 맨 위로: cmd + HOME (fn + ←) 맨 아래로: cmd + End (fn + →) 기본 단축키는 home/end 키를 같이 써야해서 겁나 불편하다. (현재 커서에서 가장 밑/위 까지 선택할 때 특히 어렵) 맨 위로: cmd + ↑ 맨 아래로: cmd + ↓ Preferences -> Keymap 으로 이동 사진 처럼 4개의 단축키를 바꿔준다. 2022. 1. 14.
[Android] CoordinatorLayout EditText 키보드 가림 EditText 포커싱 될 때 키보드가 EditText를 가리는 문제 (CoordinatorLayout 안에 scrollview 안에 EditText 가 있음.) 아래처럼 적용하면 키보드가 화면을 밀어내면서 가리지 않게 된다. AndroidManifest 에 windowSoftInputMode 추가 android:windowSoftInputMode="adjustPan|stateAlwaysVisible|stateVisible" (예시) (전체코드) 2022. 1. 7.
[Xamarin] Custom sliver top area (gradually disappearing view while scrolling) https://api.flutter.dev/flutter/material/SliverAppBar-class.html (flutter의 sliver app bar와 유사, airbnb 뷰와 유사) 스크롤 하면서 상단 영역(터치 가능)이 점점 사라지는 커스텀 뷰를 만들어보자. Let's create a view where the top area (touchable) gradually disappears while scrolling. xaml 코드를 살펴보자. (전체 코드를 삽입한 것이 아님.) ... ... ... ... 바깥쪽 최 상위 영역에 스크롤뷰로 감싸준다. 이후에 상단 박스의 opacity를 변경해주기 위해, 이 스크롤뷰의 스크롤 위치를 가져올 예정이다. 그리고 안쪽에 Grid를 배치한다. 안쪽영역.. 2021. 9. 13.
[Xamarin] set alpha at hex 100% — FF 95% — F2 90% — E6 85% — D9 80% — CC 75% — BF 70% — B3 65% — A6 60% — 99 55% — 8C 50% — 80 45% — 73 40% — 66 35% — 59 30% — 4D 25% — 40 20% — 33 15% — 26 10% — 1A 5% — 0D 0% — 00 ex) Black 10% => "1A000000" 2021. 6. 16.
[C#, Xamarin] Call by value, deep copy if (!(BindingContext is DFDream dream)) return; MessagingCenter.Send(this, MessagingCenterMessages.AddWizardDream, dream)); 이렇게 하고 dream을 수정하니까 추가된 dream들이 다 같이 수정되어버림. DFDream에 Clone() 메소드를 추가. public object Clone() { return new DFDream { Id = this.Id, ProfileImage = this.ProfileImage, ... }; } (DFDream)dream.Clone()으로 넘김. private async void OnStartDreamButtonTapped(object sender, EventArgs e) .. 2021. 6. 16.