본문 바로가기

전체 글185

[Android/Kotlin] 세로/가로 모드 ui 분리 구현 # 가로모드 레이아웃 생성하기layout -> New -> Layout Resource File -> File name은 세로모드 이름과 똑같이 써주기 -> orientation -> landscape 이렇게 가로모드 생성해준뒤, 세로모드 레이아웃을 복붙해주고 가로모드에서 이상한 레이아웃들만 수정해주면 쉽게 끝난다! # 트러블 슈팅가로모드로 전환하니깐 갑자기 앱이 종료되는 현상이 발생했다찾아보니깐 엑티비티가 회전될때(가로->세로 / 세로->가로 전환시) onDestory되었다가 onCreate되어서 매번 새로운 UI가 그려지기 때문에, 이때 화면이 재생성되면서 앱이 강제종료 될수있는 문제가 발생한다고 한다따라서 AndroidManifest에가서 모든 엑티비티마다android:configChang.. 2024. 4. 7.
[Android / Kotlin] SNS 앱 팀 프로젝트 - 회원가입, 로그인 / 마이페이지 이번에는 회원가입,로그인 페이지를 만들어볼건데 먼저 메인엑티비티에서 프로필 이미지를 클릭하면 회원가입과 로그인을 할 수 있는 페이지로 이동할것이기 때문에 먼저 메인엑티비티에 추가로 디자인해줄것이다 # MainActivity에 디자인추가 activity_main.xml 이런식으로 저번에 디자인해줬던 메인엑티비티에 상단 레이아웃을 추가로 디자인해줬다 그리고 MainActivity로 가서 프로필이미지를 클릭했을때 FirstActivity로 이동하도록해준다 class MainActivity : AppCompatActivity() { lateinit var emailData : String lateinit var nameData : String lateinit var intentToLogin : Intent la.. 2024. 4. 7.
[Android / Kotlin] SNS 앱 팀 프로젝트 - 디테일페이지 저번 포스팅에서 리사이클러뷰 아이템을 클릭했을때 DetailActivity로 이동하고 이동할때 title,content,image데이터를 전달해주는 작업까지 완료했다 이제 DetailActivity를 디자인하고 보낸 데이터를 받아서 화면에 표시해주는 작업을 해볼것이다! # DetailActivity 레이아웃 디자인 activity_detail.xml 어짜피 데이터를 뿌려줄거기 때문에 이런식으로 디자인했다 처음엔 빈하트가 보이고 빈하트를 누르면 채워진하트 이미지로 변경해줄것이기 때문에 빈하트는 visibility를 visible로 설정해서 보이게 했고, 채워진하트는 invisible로 설정해서 일단 화면에 안보이게 했다 그리고 더보기버튼으로 텍스트의 길이를 길게 보여주는 용도로 사용할건데, 초기에는 보이지.. 2024. 4. 7.
[Android / Kotlin] SNS앱 팀 프로젝트 - 메인페이지 본격적으로 첫 팀프로젝트를 시작했는데 주제는 SNS관련 앱을 만드는것이였다 예시로는 인스타앱을 제시해주었지만 우리조는 어떤 SNS관련앱을 만들까 생각하다가 VLIVE(V앱)을 참고해서 우리조가 좋아하는 아이돌들에 대한 게시물을 볼 수 있는 SNS앱을 만들어보았다! 그래서 피그마를 사용해서 아래와 같이 와이어프레임을 짜봤다 디자인은 V앱을 많이 참고해서 만들었다ㅎㅎ 일단 처음에 메인화면부터 만들어줄건데 bottomnavigationview를 사용해서 홈화면과 마이페이지를 클릭했을때 홈프레그먼트,마이페이지 프레그먼트가 나오게 만들어줘야한다 예전에 만들어본적이 있어서 내가 쓴 블로그를 다시 참조해서 코드를 작성했다. 기록하는게 진짜 중요한것같다.. 해봤어도 까먹어서 내가 적었던 블로그를 보면 다시 기억이 잘난.. 2024. 4. 6.
[Android] Fragment간 데이터통신 방식 1. FragmentManager에 Bundle로 Data를 담아 전달//PassBundleFragment는 본인이 전달하고자 하는 Fragment class val bundle = Bundle() bundle.putString("key", "value") val passBundleBFragment = PassBundleBFragment()passBundleBFragment.arguments = bundle parentFragmentManager.beginTransaction() .replace(R.id.fragment_container_bundle, PassBundleFragment()) .commit()-> 데이터를 전송하려는 Fragement에서 작성 override fun onCreateView(.. 2024. 3. 29.
[Android] Fragment Lifecycle 프래그먼트를 사용하면 화면하나를, 독립적으로 작동하는 부분화면 여러개로 구현할 수 있다프레그먼트는 엑티비티처럼 레이아웃을 표시하고, 생명주기를 가지며 입력 이벤트를 받을 수 있다하지만 독립적으로는 존재할 수 없고, 해당 프래그먼트를 관리하는 호스트 액티비티나 프래그먼트 하위에서만 존재할 수 있다 엑티비티는 안드로이드 4대 컴포넌트 중 하나로 안드로이드 시스템에서 관리하지만,프레그먼트는 안드로이드 시스템이 직접 관리하지 않고 FragmentManager가 관리하기 때문에 엑티비티보다 메모리 리소스가 상대적으로 덜 소모된다.또한 한번 작성된 프레그먼트는 여러 액티비티에서 재사용이 가능하며, 따라서 UI 구현에 필요한 작업량을 감소시킬 수 있다 # 프래그먼트 수명 주기 상태 및 콜백 -> 그림을 보면 Fr.. 2024. 3. 29.