반응형
Notice
Recent Posts
Recent Comments
Link
불로구
안드로이드 스튜디오 - addView 본문
반응형
addView란?
- 현재는 recycleview를 더 많이 사용하지만 recycleview를 사용하기 위해 알아야하는 기술
- 액티비티가 호출하는 xml 레이아웃에 소스코드로 직접 view를 만들어서 add한다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00cc00"
android:orientation="vertical"
android:padding="6dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/car_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="4dp"
android:textSize="20dp" />
<TextView
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#ffffff" />
<TextView
android:id="@+id/car_engine"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="4dp"
android:textSize="50dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/white"/>
</LinearLayout>
-> item_view.xml 파일을 만들어서 추가할 xml 요소를 작성한다.
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:id="@+id/addview_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
</ScrollView>
-> addview를 추가할 자리를 만들고 스크롤 처리했다
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//아이템 리스트
val carList = ArrayList<Car>()
for(i in 0 until 10){
carList.add(Car(""+i+"번째 자동차", ""+i+"순위 엔진"))
}
val container = findViewById<LinearLayout>(R.id.addview_container)
val inflater = LayoutInflater.from(this@MainActivity)
for(i in 0 until carList.size){
val itemView = inflater.inflate(R.layout.item_view, null)
val carNameView = itemView.findViewById<TextView>(R.id.car_name)
val carEngineView = itemView.findViewById<TextView>(R.id.car_engine)
carNameView.setText(carList.get(i).name)
carEngineView.setText(carList.get(i).engine)
container.addView(itemView)
}
}
}
class Car(val name:String , val engine:String){
}
반응형
Comments