슬라이드가 필요한 경우 RecyclerView를 사용하세요. 추가를 클릭하면 어댑터에 데이터를 삽입하고 업데이트 보기를 업데이트하세요
숫자가 그다지 크지 않으면 LinearLayout을 사용하고 클릭 시 하위 뷰를 동적으로 추가한 다음 LinearLayout을 다시 그립니다.
이 효과에는 두 가지 주요 구성 요소가 있습니다. 첫 번째는 특정 하위 뷰를 배치하는 데 사용되는 외부 컨테이너(이하 상위 뷰)입니다. 두 번째는 원하는 하위 뷰입니다. 동적으로 추가하세요. 이 하위 뷰에는
및 LinearLayout이 포함되어야 합니다. 하위 뷰 EditTextButton를 만드는 방법을 알고 있다고 가정합니다.
작업은 새 버튼을 클릭하고
메서드를 사용하여 상위 뷰에 하위 뷰를 추가하는 것입니다. 이를 "EditText"라고 합니다. 그런 다음 상위 뷰의 크기가 변경된 상위 뷰의
메소드는 상위 뷰를 다시 그리며 방금 추가한 하위 뷰가 표시되고 추가가 성공하면 ViewGroup.addView()을 호출합니다. 마찬가지로 invalidate()을 사용하여 삭제 버튼을 클릭할 때 해당 하위 뷰를 삭제한 다음 requestLayout()/ViewGroup.removeView()invalidate()requestLayout()
슬라이드가 필요한 경우
RecyclerView
를 사용하세요. 추가를 클릭하면 어댑터에 데이터를 삽입하고 업데이트 보기를 업데이트하세요숫자가 그다지 크지 않으면
LinearLayout
을 사용하고 클릭 시 하위 뷰를 동적으로 추가한 다음LinearLayout
을 다시 그립니다.및
LinearLayout
이 포함되어야 합니다. 하위 뷰EditText
Button
를 만드는 방법을 알고 있다고 가정합니다.메소드는 상위 뷰를 다시 그리며 방금 추가한 하위 뷰가 표시되고 추가가 성공하면
ViewGroup.addView()
을 호출합니다. 마찬가지로invalidate()
을 사용하여 삭제 버튼을 클릭할 때 해당 하위 뷰를 삭제한 다음requestLayout()
/ViewGroup.removeView()
invalidate()
requestLayout()
으아아아
으아아아R.layout.edt
활동키코드키코드는 위와 같습니다
컨테이너는 위에서 언급한 상위 컨트롤이며
- 은 위에서 언급한 하위 컨트롤의 레이아웃이고, 버튼은
LinearLayout
R.layout.edt
R.id.btn
입니다.