Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add RecyclerView & TabLayout in TineLine Fragment #78

Merged
merged 14 commits into from
Jan 21, 2024

Conversation

HeewonP825
Copy link
Collaborator

@HeewonP825 HeewonP825 commented Jan 20, 2024

Related Issue

#25

Changes

  • 메인 TimeLine Page UI 작업을 완료했습니다. 추후 데이터 연결을 위한 data type 수정이 필요합니다.

작업사항

  • TimelineFragment에서 Toolbar 프로필 아이콘 설정
  • Profile icon에 navigation을 이용해 ProfileFragment로 이동 액션 연결
  • 타임라인 TabLayout ViewPager2 사용해서 구성
  • paint item container xml로 구현 완료
  • Timeline RecyclerView 만들기
  • 스크롤 시 viewpager로 넘겼을때 이전 스크롤 데이터값 저장

수정사항

  • post menu에 필요한 icon 추가

Screenshots

작업화면

To Reviewer

TODO

  • 반투명 bottom bar 만들기
  • 스크롤 땡겨서 새로고침 가능하게하기

고민 사항

  • Tab indicator가 할당된 높이로 맞추면 끝이 살짝 짤립니다.. 보기에 나쁘지 않아서 그냥 둘까 생각중인데 어떨까요?
  • Indicator 길이가 조금 안맞아서 각각 조절이 가능하다면 추후에...ㅎㅎ
  • JSON으로 dummyData를 전달하려고 시도해봤는데 null -> visible.GONE or INVISIBLE 전환과 이미지값 전달이 잘 안됩니다ㅠ
  • Context와 hashtag를 어떻게 배치할지 고민입니다. 현재는 두 가지를 각각 다른 뷰로 연결했을때 Horizontal하게 배치하면 화면짤림현상을 해결할 수 없어 Vertical하게 배치했는데 어떻게 해결해야 할 지 고민해봐야 할 부분 같습니다ㅜ

Checklist

  • PR 제목은 포맷과 내용 둘 다 알맞게 작성되었는가
  • PR에 대해 구체적으로 설명이 되어있는가

@HeewonP825 HeewonP825 added android 안드로이드 관련 내용을 다룰 때 사용됩니다 feature 새로운 기능을 만들 때 사용됩니다 labels Jan 20, 2024
@HeewonP825 HeewonP825 self-assigned this Jan 20, 2024
@HeewonP825 HeewonP825 requested a review from poiu694 as a code owner January 20, 2024 20:08
@HeewonP825 HeewonP825 changed the title Feat/timeline UI feat: add RecyclerView & TabLayout in TineLine Fragment Jan 20, 2024
Copy link
Collaborator

@poiu694 poiu694 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

커밋 단위가 작아서 좋네요 :)

크게 바뀔 부분은 없을 것 같아서 어프로브 먼저 드립니다!

Comment on lines +3 to +15
data class TimelineItem(
val profileImg: Int?,
val nickName: String,
val userName: String,
val timeAgo: String,
val content: String?,
val contentImg: Int?,
val hashtag: String?,
val replys: Int?,
val reposts: Int?,
val like: Int?,
val views: Int?,
)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TimlineItem의 형태가 백엔드에서 내려주는 json 형태와 다를 것 같은데 나중에 api 연결 후 바꾸는 것보다 사전에 미리 비슷하게 적어두면 좋지 않을까 싶어서요!

아니면 백엔드에서 내려주는 걸 프론트에서 한 번 매핑해서 사용하실 생각인가요?!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 부분도 고민중에 있었는데.. 저희 프로젝트의 규모가 작은편인가요? 그대로 사용하는게 코드가 간결해질 것 같긴 한데 의존성이랑 이것저것 생각해봤을때 매핑하는 방식으로 한 번 해볼까 싶기도 해서..어떻게 생각하시나요??

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

죠습니다 :)

Copy link
Collaborator

@poiu694 poiu694 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tab indicator가 할당된 높이로 맞추면 끝이 살짝 짤립니다.. 보기에 나쁘지 않아서 그냥 둘까 생각중인데 어떨까요?

그 탭 아래에 있는 파란 line이 맞다면 괜찮아보여요!

Indicator 길이가 조금 안맞아서 각각 조절이 가능하다면 추후에...ㅎㅎ

ㅎㅎ감사합니다 :)

JSON으로 dummyData를 전달하려고 시도해봤는데 null -> visible.GONE or INVISIBLE 전환과 이미지값 전달이 잘 안됩니다ㅠ

이거는 잘 모르겠습니다 ㅠㅠㅠ

Context와 hashtag를 어떻게 배치할지 고민입니다. 현재는 두 가지를 각각 다른 뷰로 연결했을때 Horizontal하게 배치하면 화면짤림현상을 해결할 수 없어 Vertical하게 배치했는데 어떻게 해결해야 할 지 고민해봐야 할 부분 같습니다ㅜ

이거는 아래처럼 중간에 들어갈 수도 있지 않나요? 해당 경우도 커버가 되는걸까요?!

가나다 #해시태그 안녕하세요

@HeewonP825
Copy link
Collaborator Author

Tab indicator가 할당된 높이로 맞추면 끝이 살짝 짤립니다.. 보기에 나쁘지 않아서 그냥 둘까 생각중인데 어떨까요?

그 탭 아래에 있는 파란 line이 맞다면 괜찮아보여요!

Indicator 길이가 조금 안맞아서 각각 조절이 가능하다면 추후에...ㅎㅎ

ㅎㅎ감사합니다 :)

JSON으로 dummyData를 전달하려고 시도해봤는데 null -> visible.GONE or INVISIBLE 전환과 이미지값 전달이 잘 안됩니다ㅠ

이거는 잘 모르겠습니다 ㅠㅠㅠ

Context와 hashtag를 어떻게 배치할지 고민입니다. 현재는 두 가지를 각각 다른 뷰로 연결했을때 Horizontal하게 배치하면 화면짤림현상을 해결할 수 없어 Vertical하게 배치했는데 어떻게 해결해야 할 지 고민해봐야 할 부분 같습니다ㅜ

이거는 아래처럼 중간에 들어갈 수도 있지 않나요? 해당 경우도 커버가 되는걸까요?!

가나다 #해시태그 안녕하세요

...해시태그가 중간에 들어가는건 진짜 생각도 못했네요ㅜ 이 부분은 좀 더 고민해보고 추후 수정하겠습니다....ㅠㅠㅠ

@HeewonP825 HeewonP825 merged commit b676492 into android/dev Jan 21, 2024
2 checks passed
@HeewonP825 HeewonP825 deleted the feat/timeline-ui branch January 21, 2024 05:09
@HeewonP825 HeewonP825 mentioned this pull request Jan 22, 2024
2 tasks
HeewonP825 added a commit that referenced this pull request Jan 22, 2024
* feat: add start & login fragment for android (#26)

* feat: setting android development environment

* feat: setting navigation graph

* feat: setting ktlint

* feat: setting ktlint

* feat: setting ktlint

* chore: test eol at new file

* chore: add eol to files

* chore: add eol to gitignore

* chore: add colorList

* chore: add font_resource & font_style xml

* chore: add font style themes

* chore: edit theme colors

* chore: edit font style themes

* feat: add startFragment & edit MainActivity, nav_graph

* feat: add lottieAnimation in Gradle & startFragment

* feat: edit lottieAnimation size

* chore: add icons

* feat: add loginFragment & strings

* feat: add nagivation start to login & loginFragment ui xml

* feat: add String and edit login & loginFragment ui xml

* feat: add nagivation login to password  & PasswordFragment ui xml

* chore: edit letterspacing in themes.xml

* chore: review apply

* chore: edit home icon

* feat: add find account Fragment & edit font system in themes (#35)

* chore: add green check icon

* feat: add FindAccountFragment

* feat: edit FindAccountFrangmet for basic setting

* feat: add FindAccountFragment String

* feat: add navigation action in loginFragment & PasswordFragment

* chore: edit font system in themes

* chore: edit textStyle in fragment_password

* feat: add CheckIdFragment

* feat: delete checkidFragment & edit FindAccountFragment btn ui & add underline for passwordFragment string

* feat: edit id name in login/findAccount Fragment

* feat: edit headline weight in fragments

* chore: edit textStyle & delete view in startFragment

* feat: finish login & join View components (#58)

* feat: add createAccountFragment

* feat: add string for createAccountFragment

* feat: edit xml for CreateAccountFragment Ui

* feat: add navigation Action for createAccountFragment

* feat: add action for check icon in CreateAccountFragment

* feat: edit string for CreatAccountFragment

* chore: add icons for password/profile

* feat: edit textcolor for announcement & add toast message

* feat: add SendCodeFragment

* feat: add strings for SendCodeFragment

* feat: add navigation Action for SendCodeFragment

* feat: edit xml & fragment code for SendCodeFragment

* feat: edit string to remove phoneNum & add email/Number Keypad for editText

* feat: add NeedPasswordFragment

* feat: add strings for NeedPasswordFragment

* feat: edit xml & fragment code for NeedPasswordFragment

* feat: add navigation Action for NeedPasswordFragment

* feat: edit directory structure for viewmodel(MVVM) & add JoinViewModel

* feat: add ProfileImageFragment

* feat: add string for ProfileImageFragment

* feat: edit xml & fragment code for ProfileImageFragment

* feat: add navigation Action for ProfileImageFragment

* feat: add Fragment & string for AskNameFragment

* feat: edit xml & fragment code for AskNameFragment

* feat: add navigation Action for AskNameFragment

* feat: remove skip btn in AskNameFragment

* feat: edit JoinViewModel for send livedata fragment to fragment

* feat: edit NeedPasswordFragment to Setting icon action for password inputType On/Off

* feat: edit profileImageFragment to link icon to Gallery

* feat: forbid keybord action(space, enter)

* feat: edit PasswordFragment to Setting icon action for password inputType On/Off

* feat: add viewmodel for login View

* feat: add button activation for all fragments

* feat: change lottie animation

* feat: remove underline in EditText

* feat: add hint animation in join View

* feat: add hint animation in login View

* feat: add validate check for NeedPasswordFragment & add Toast for sendEmail

* feat: add validate check for CreateAccountFragment

* feat: edit ImageView to CardView

* feat: add Image delete btn & logic in ProfileImageFragment

* feat: add keypad dependency in buttons

* feat: edit viewmodel to bundle in login->password logic

* feat: edit FindAccountFragment to remove underline in editText

* feat: remove log

* chore: reflect review

* feat: edit eol

* feat: add toolbar & bottom navigation bar (#71)

* feat: add toolbar & navigation bar basic setting

* feat: change constraintLayout into LinearLayout to pix location & add TimelineFragment

* feat: edit toolbar navigate icon & actions for login/join Views

* feat: setting basic things for timelineFragment

* feat: add toolbar icon in TimelineFragment

* feat: create Fragments for add bottom navigation bar

* feat: edit activity_main.xml for toolbar/navbar/fragmentContainer view problem

* feat: edit margin in loginFragment

* edit bottom_nav

* feat: chained fragmentContainerView in activityMain

* feat: edit toolbar & bottom navigationbar

* feat: delete sucks itemActiceIndicator

* feat: clear doubleClicked icon focus issue

* chore: add eol

* chore: reflect review

* chore: reflect review

* chore: reflect review

* feat: add RecyclerView & TabLayout in TineLine Fragment (#78)

* chore: edit nav_bar visibility for easy dev

* feat: add profile icon for toolbar

* feat: add action for profile icon to navigate ProfileFragment

* feat: add adapter for TimelineFragment & add Tablayout/ViewPager

* feat: add ForToyFragment/TimeLineFragment & edit toolbar bg/indicator color

* feat: add item_timeline for timeline RecyclerView

* feat: edit item_timeline for timeline RecyclerView

* feat: edit TimeLineItem dataclass for nullable components

* feat: add recyclerView in FollowingFragment

* feat: edit profileImg to nullable & remove touch animation in bottombar

* feat: add scroll action save logic in RV

* feat: add json file & edit icon size

* chore: add icons for post menu

* feat: edit TimelineRVAdapter
HeewonP825 added a commit that referenced this pull request Feb 22, 2024
* feat: add start & login fragment for android (#26)

* feat: setting android development environment

* feat: setting navigation graph

* feat: setting ktlint

* feat: setting ktlint

* feat: setting ktlint

* chore: test eol at new file

* chore: add eol to files

* chore: add eol to gitignore

* chore: add colorList

* chore: add font_resource & font_style xml

* chore: add font style themes

* chore: edit theme colors

* chore: edit font style themes

* feat: add startFragment & edit MainActivity, nav_graph

* feat: add lottieAnimation in Gradle & startFragment

* feat: edit lottieAnimation size

* chore: add icons

* feat: add loginFragment & strings

* feat: add nagivation start to login & loginFragment ui xml

* feat: add String and edit login & loginFragment ui xml

* feat: add nagivation login to password  & PasswordFragment ui xml

* chore: edit letterspacing in themes.xml

* chore: review apply

* chore: edit home icon

* feat: add find account Fragment & edit font system in themes (#35)

* chore: add green check icon

* feat: add FindAccountFragment

* feat: edit FindAccountFrangmet for basic setting

* feat: add FindAccountFragment String

* feat: add navigation action in loginFragment & PasswordFragment

* chore: edit font system in themes

* chore: edit textStyle in fragment_password

* feat: add CheckIdFragment

* feat: delete checkidFragment & edit FindAccountFragment btn ui & add underline for passwordFragment string

* feat: edit id name in login/findAccount Fragment

* feat: edit headline weight in fragments

* chore: edit textStyle & delete view in startFragment

* feat: finish login & join View components (#58)

* feat: add createAccountFragment

* feat: add string for createAccountFragment

* feat: edit xml for CreateAccountFragment Ui

* feat: add navigation Action for createAccountFragment

* feat: add action for check icon in CreateAccountFragment

* feat: edit string for CreatAccountFragment

* chore: add icons for password/profile

* feat: edit textcolor for announcement & add toast message

* feat: add SendCodeFragment

* feat: add strings for SendCodeFragment

* feat: add navigation Action for SendCodeFragment

* feat: edit xml & fragment code for SendCodeFragment

* feat: edit string to remove phoneNum & add email/Number Keypad for editText

* feat: add NeedPasswordFragment

* feat: add strings for NeedPasswordFragment

* feat: edit xml & fragment code for NeedPasswordFragment

* feat: add navigation Action for NeedPasswordFragment

* feat: edit directory structure for viewmodel(MVVM) & add JoinViewModel

* feat: add ProfileImageFragment

* feat: add string for ProfileImageFragment

* feat: edit xml & fragment code for ProfileImageFragment

* feat: add navigation Action for ProfileImageFragment

* feat: add Fragment & string for AskNameFragment

* feat: edit xml & fragment code for AskNameFragment

* feat: add navigation Action for AskNameFragment

* feat: remove skip btn in AskNameFragment

* feat: edit JoinViewModel for send livedata fragment to fragment

* feat: edit NeedPasswordFragment to Setting icon action for password inputType On/Off

* feat: edit profileImageFragment to link icon to Gallery

* feat: forbid keybord action(space, enter)

* feat: edit PasswordFragment to Setting icon action for password inputType On/Off

* feat: add viewmodel for login View

* feat: add button activation for all fragments

* feat: change lottie animation

* feat: remove underline in EditText

* feat: add hint animation in join View

* feat: add hint animation in login View

* feat: add validate check for NeedPasswordFragment & add Toast for sendEmail

* feat: add validate check for CreateAccountFragment

* feat: edit ImageView to CardView

* feat: add Image delete btn & logic in ProfileImageFragment

* feat: add keypad dependency in buttons

* feat: edit viewmodel to bundle in login->password logic

* feat: edit FindAccountFragment to remove underline in editText

* feat: remove log

* chore: reflect review

* feat: edit eol

* feat: add toolbar & bottom navigation bar (#71)

* feat: add toolbar & navigation bar basic setting

* feat: change constraintLayout into LinearLayout to pix location & add TimelineFragment

* feat: edit toolbar navigate icon & actions for login/join Views

* feat: setting basic things for timelineFragment

* feat: add toolbar icon in TimelineFragment

* feat: create Fragments for add bottom navigation bar

* feat: edit activity_main.xml for toolbar/navbar/fragmentContainer view problem

* feat: edit margin in loginFragment

* edit bottom_nav

* feat: chained fragmentContainerView in activityMain

* feat: edit toolbar & bottom navigationbar

* feat: delete sucks itemActiceIndicator

* feat: clear doubleClicked icon focus issue

* chore: add eol

* chore: reflect review

* chore: reflect review

* chore: reflect review

* feat: add RecyclerView & TabLayout in TineLine Fragment (#78)

* chore: edit nav_bar visibility for easy dev

* feat: add profile icon for toolbar

* feat: add action for profile icon to navigate ProfileFragment

* feat: add adapter for TimelineFragment & add Tablayout/ViewPager

* feat: add ForToyFragment/TimeLineFragment & edit toolbar bg/indicator color

* feat: add item_timeline for timeline RecyclerView

* feat: edit item_timeline for timeline RecyclerView

* feat: edit TimeLineItem dataclass for nullable components

* feat: add recyclerView in FollowingFragment

* feat: edit profileImg to nullable & remove touch animation in bottombar

* feat: add scroll action save logic in RV

* feat: add json file & edit icon size

* chore: add icons for post menu

* feat: edit TimelineRVAdapter

* feat: add bottomSheetDialog & Menu & FAB (#114)

* feat:add bottomSheetDialog for Timeline

* feat:add bottomSheetDialog xml for Timeline

* feat: add behavior navigationBar & edit bottomsheet

* feat: add fab btn & animation in timeline Fragment

* feat: add fab btn & animation in timeline Fragment

* fix: edit Viewpager overFlow

* fix:remove bottomSheetDialog

* feat: edit fab margin in constraintlayout

* feat: add dummy data for Timeline

* feat: add fab in navigation Fragment

* feat: edit fab in messageFragment

* feat: add vibrate for longClick

* feat: add icons for popupmenu & add basic popupMenu

* feat: add custom popup menu xml

* feat: add custom popup into TimeLineRVAdapter

* feat: edit custom popup tv

* feat: add bottomSheetDialog

* chore: rename Timeline package to timeline

* feat: add post Fragment

* feat: add navigation actions to post Fragment

* feat: add actions for fab to PostFragment

* fix: fix navigation actions to post Fragment

* feat: add xml for ProfileFragment

* feat: add action in MypageFragment(before ProfileFragment)

* feat: add toggle action in MypageFragment

* feat: add lightMode icon & Toast

* feat: try to add animation in MyPageFragment

* feat: add overlay view in TimelineFragment

* feat:divide bottomSheetDialog into Rt & share

* feat: add Toast into MyPageFragment

* feat: add ViewBottomSheetDialog

* feat: edit button to android.widget.button

* chore: add eol

* chore: reflect review

* chore:reflect review

* feat: add ic_up_arrow

* chore:reflect review

* feat: fix FAB animation bug

* chore:reflect review

* feat: remove elevation in bottomSheet btn

* feat: add ProfileFragment & BookMarkFragment (#121)

* feat: add profileFragment.xml before tablayout

* feat: add viewPager & TabLayout in ProfileFragment

* feat: add RV in MyPostFragment & edit doublePressed Logic in ForYou/Following Fragment

* feat: add RV in ReplyFragment

* feat: add RV in LikedFragment

* feat: add RV in MediaFragment

* feat: add RV in HighlightFragment

* feat: change scrollview into NestedScrollView

* feat: try to change statusBar Transperent

* feat: add naviation for ProfileFragment & ViewPager

* feat: Edit HighlighFragment to subscribe xml

* feat: add FAB in ProfileFragment

* feat: edit toobal & navBar visibility

* feat: add BookMarkFragment & nav Actions

* feat: add RV & toolbar Visibility for BookMarkFragment

* feat: add layout for when bookMark is empty

* feat: edit navigation in MyPageFragment

* chore: add icon

* chore: add eol

* feat: add scroll action in ProfileFragment (#158)

* chore: remove unused behavior.kt

* feat: add SwipeRefresh in Timeline

* feat: try to forbid basicBackbtn in ProfileFragment

* feat: add nestedScrollableHost/icon  & edit color theme name

* chore: add Timber in Dependency & MainActivity

* feat: remove scrollView in RV

* feat: remove scrollView in RV

* feat: remove scrollView in RV

* feat: divide ConstraintLayout into 2

* feat: edit xml for scrollView

* feat: add action in backbtn for ProfileFragment

* feat: add SwipeRefresh in xml

* feat: add swipe action in Tablayout

* extract Method for RV in ProfileFragment

* feat: try to add Highlight RV for ProfileFragment Tablayout

* feat: make FAB cannot scroll

* chore:add eol

* feat: edit popupMenu constraintLayout

* chore: add eol

* chore: reflect review

* chore: reflect review

* chore: reflect review

* chore: reflect review

* chore: reflect review

* chore: add eol

* chore: add eol

* feat: add PostFragment (#234)

* feat: remove toolbar&navigation in PostFragment

* feat: edit fragment_post.xml

* feat: edit post_fragment.xml

* feat: add textWatcher action & photo plus btn in PostFragment

* feat: add CircularProgressBar

* feat: add CircularProgressBar

* fix: edit constraintLayout for editText space

* fix: add img RV in PostFragment

* fix: add horizontalScrollView

* feat: link Gallery to PostFragment RV with Glide

* feat: add border & cardView in Item_post_img

* feat: add action for backbtn in PostFragment

* chore:edit opacity for popup menu

* feat: load Img from gallery to PostFragment

* feat: change view's ConstraintLayout in PostFragment

* feat: change enable btn in postFragment

* feat: change deleteBtn translationZ

* fix: fix upload sequence error

* feat: add setOnClickListener in Horizontal RV

* feat: change enable btn in postFragment

* feat: change enable btn when add img in postFragment

* chore:reflect review

* chore:reflect review

* chore:reflect review

* chore:reflect review

* feat: add quote & detail fragment (#279)

* feat: add quote text & image ver

* feat: add MultiView(quote text & image) in RV

* feat: edit MultiView(quote text & image) margin & border in RV

* feat: set Visibility for MultiView(quote text & image) in RV

* feat: add margin for MultiView(quote text & image) in RV

* feat: add postDetailFragment

* feat: add item_post_detail.xml

* feat: edit item_post_detail.xml

* feat: add api for login&join (#292)

* feat:add api(users/verify-email, users/temporary-join)

* feat:add api(auth)

* feat:add api(user/join) except profileImg

* feat:add api(auth/mobile) & tokenManager

* feat:add api(users/me)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
android 안드로이드 관련 내용을 다룰 때 사용됩니다 feature 새로운 기능을 만들 때 사용됩니다
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants