개발 노트/Kotlin (96) 썸네일형 리스트형 [kotlin]Recyclerview Adpater부분에서 Glide를 통해 이미지 표시하는법 Fragment에 있는 리사이클러뷰에 이미지를 넣고싶었는데 잘 안되서 좀 해멨었기 때문에 기록해보려한다 일단 이미지를 불러오기위해 Glide를 사용할것이기 때문에 아래와 같이 gradle에 라이브러리를 추가해준다 implementation ("com.github.bumptech.glide:glide:4.12.0") // 이미지로딩 라이브러리 gradle(app) 먼저 Fragment에 있는 리사이클러뷰에 텍스트나 이미지를 넣는 작업은 Adapter쪽에서 해줘야한다 Adapter의 viewHolder부분에서 findViewId를 통해 이미지를 넣을부분을 초기화해준다 그다음 Glide를 사용해서 이미지를 보이게 적용해주는데, Fragment와 연결을 해줄것이기때문에 context를 사용해서 Glide.wit.. [kotlin] viewpager 스와이프 막기 viewpager를 만들면 자동적으로 스와이프 되는 기능이 추가되는데, 이 스와이프 기능을 제거하고 싶을때 추가해줄 코드를 살펴보겠다 TabLayout과 ViewPager가 있는 레이아웃의 엑티비티로 가서 ViewPager를 바인딩한 후, 아래와 같이 코드를 작성해주면 된다 // 스와이프 제거 binding.recipeContentVp.run { isUserInputEnabled = false } TabLayoutAvtivity.kt [kotlin] TabLayout 만들기 이런식으로 TabLayout과 Viewpager를 사용해서 클릭했을때 해당하는 프레그먼트로 이동하도록 만들어볼것이다 먼저 TabLayout과 ViewPager를 사용해서 레이아웃을 디자인해준다 나는 조금 더 예쁘게 디자인해주고 싶어서 코드들을 추가해주었다 style에 TabLayoutText를 만들어서 폰트,텍스트 크기, 텍스트 스타일 등을 추가한뒤 레이아웃 부분에 app : tabTextAppearance = "@style/TabLayout" 을 써줘서 글자를 예쁘게 꾸며줬다 그리고 사이의 간격을 띄우고싶어서 아래 코드를 추가해줬다 app:tabMaxWidth="0dp" app:tabGravity="fill" app:tabMode="fixed" 간격 띄우는 코드 activity_tab_layout.xm.. [Kotlin]댓글창 레이아웃 디자인 댓글창 레이아웃을 디자인하는중에 생각보다 헷갈리고 많이 헤매서 기록을 해두려고 한다 내가 만들고싶었던 레이아웃 디자인은 게시글을 눌렀을때 나오는 화면 밑에 댓글을 작성할수 있게하는것이였다 그리고 댓글창은 맨 아래쪽에 고정되었으면 좋겠고, 댓글창 부분 빼고 나머지는 스크롤뷰를 사용해서 스크롤이 되게 디자인을 하고싶었다 먼저 댓글창 EditText와 버튼을 디자인해주고 리니어레이아웃으로 묶어준뒤 layout_alignParentBottom = "true" 라는 코드를 추가해서 댓글창이 맨 아래쪽에 고정되도록 설정해주었다 그리고 게시글 레이아웃 밑에 댓글내용이 들어가도록 리사이클러뷰를 배치해줬다 나는 라인 바로 밑에 리사이클러뷰가 들어가도록 설정해줄것이기 때문에 라인의 id를 line이라고 정해주고 layou.. [kotlin]No layout manager attached; skipping layout 오류 리사이클러뷰 관련 코드를 짜다가 이런 오류가 발생했다 No layout manager attached; skipping layout 이 오류 때문인지 모르고 한시간동안 코드 살펴보고 헛수고했는데 알고보니깐 아주 간단한 오류였다 리사이클러뷰 레이아웃부분에 아래코드 한줄만 추가해주니깐 오류가 해결되었다 app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" [Kotlin] LinerLayout 왼쪽 정렬, 오른쪽 정렬 왼쪽과 오른쪽을 한줄에 같이 정렬하고 싶은 경우가 있을것이다 나는 위 사진처럼 디자인하길 원했다 닉네임,하트 이미지 부분을 양끝으로 정렬 해줘야했다 근데 저부분은 width가 전체가 아니기때문에 해당 길이에 맞게 width길이를 적용해주고, 닉네임과 하트 사이에 아래 코드를 추가시켜줬다 왼쪽, 오른쪽 정렬 코드 전체 코드이다 ScrollView 사용하기 ScrollView는 하나의뷰만 감쌀수있다는 특징이 있다!! 그렇기때문에 여러뷰를 ScrollView로 묶어주고싶으면 일단 그 뷰들을 LinearLayout이나 ConstraintLayout 등으로 묶어준뒤 ScrollView로 묶어줘야한다 이런식으로 묶어줘야한다 아래는 ScrollView를 사용한 예제이다 [kotlin] lateinit property has not been initialized 에러 커스텀 다이얼로그에서 삭제버튼을 누르면 파이어베이스에서 key값을 가져와서 삭제하는 코드를 작성하는 중에 "lateinit property key has not been initialized" 이런 오류가 발생했다 초기화 오류가 발생한것이다. 아래코드처럼 써져있어서 해당 오류가 발생했다 class BoardInsideActivity : AppCompatActivity() { // key값 선언 private lateinit var key : String private val TAG = BoardInsideActivity::class.java.simpleName private lateinit var binding: ActivityBoardInsideActiviyBinding private val board.. Custom Dialog 만들기 # 기본 다이얼로그 안드로이드에서 제공하는 기본 다이얼로그를 사용하는 방법은 아래와같이 setView, setTitle을 사용해서 작성해주면 된다. // 다이얼로그창 띄우는 함수 private fun showDialog(){ val mDialogView = LayoutInflater.from(this).inflate(R.layout.activity_community_dialog, null) val mBuilder = AlertDialog.Builder(this) .setView(mDialogView) .setTitle("게시글 수정,삭제") val alertDialog = mBuilder.show() // 수정버튼 눌렀을때 alertDialog.findViewById(R.id.dialog_edit_btn.. RecyclerView 클릭 이벤트 처리 리사이클러뷰 아이템을 클릭하는 과정을하는 도중에 조금 헤맸었는데 다음번에는 그러지 않도록 기록을 해두려한다 먼저 어뎁터에 아래 코드를 작성해준다 외부에서도 아이템클릭 코드를 작성해줄수있게 하기 위함이다 일단 내가 지금 짜는 코드는 리사이클러뷰 아이템을 클릭한 값의 위치를 받아와야되기때문에 position : Int 를 추가해준다 // 아이템 클릭시 필요한 코드 (Fragment에서[외부에서] 아이템클릭 코드 작성해줄수있도록) interface MyItemClickListener{ fun onItemClick(position: Int) } private lateinit var mItemClickListener : MyItemClickListener fun setMyItemClickListner(itemCl.. 이전 1 ··· 4 5 6 7 8 9 10 다음