2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

HorizontalScrollView에서 아이템을 추가하는 방법은 무엇인가요?

_____
Q1: HorizontalScrollView에 아이템을 추가하려면 어떻게 해야 하나요?
A1: HorizontalScrollView는 단일 자식 뷰만 가질 수 있기 때문에, 아이템을 추가하려면 내부에 LinearLayout(또는 다른 ViewGroup)을 넣고, 그 LinearLayout에 아이템 뷰들을 동적으로 추가해야 합니다.

---

Q2: 예제 코드로 HorizontalScrollView에 아이템을 추가하는 방법을 보여주세요.
A2: 다음은 Kotlin으로 작성한 예제입니다.

```kotlin
val horizontalScrollView = findViewById(R.id.horizontalScrollView)
val container = horizontalScrollView.getChildAt(0) as LinearLayout

// 새 텍스트뷰 아이템 생성
val newItem = TextView(this).apply {
text = "새 아이템"
layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.MATCH_PARENT
).apply {
marginEnd = 16
}
}

// 아이템 추가
container.addView(newItem)
```

---

Q3: XML 레이아웃 예시를 보여주세요.
A3: 기본적인 XML 구조는 다음과 같습니다.

```xml
android:id="@+id/horizontalScrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content">

android:id="@+id/container"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">




```

---

Q4: 여러 개의 아이템을 반복적으로 추가하려면 어떻게 하나요?
A4: 루프를 통해 여러 뷰를 생성하고 LinearLayout에 addView()를 호출하면 됩니다.

```kotlin
val container = findViewById(R.id.container)

for (i in 1..10) {
val item = TextView(this).apply {
text = "아이템 $i"
layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.MATCH_PARENT
).apply {
marginEnd = 16
}
}
container.addView(item)
}
```

---

Q5: HorizontalScrollView 내부에 RecyclerView 대신 LinearLayout을 사용하는 이유는?
A5: HorizontalScrollView는 스크롤 가능한 단일 뷰를 제공하므로, 다수의 아이템을 효과적으로 관리하고 재사용하려면 RecyclerView가 권장됩니다. 하지만 단순한 소량의 아이템에는 LinearLayout에 직접 뷰를 추가하는 방식이 간단한 해결책입니다.

---

Q6: HorizontalScrollView 아이템 추가 후 자동으로 스크롤하려면 어떻게 하나요?
A6: addView 후에 scrollTo() 또는 smoothScrollTo() 메소드를 호출해서 원하는 위치로 스크롤하면 됩니다.

```kotlin
// 마지막 아이템으로 스크롤
horizontalScrollView.post {
horizontalScrollView.smoothScrollTo(container.width, 0)
}
```

---

요약:
- HorizontalScrollView 안에 LinearLayout(orientation=horizontal)을 넣는다.
- LinearLayout에 addView()로 아이템을 추가한다.
- 아이템 추가 후 필요시 smoothScrollTo()로 스크롤 위치를 조정한다.
`HorizontalScrollView`에서 아이템을 추가하는 방법은 다음과 같습니다.

주로 `LinearLayout`을 사용하여 아이템을 추가하는 방식으로 진행됩니다.

아래에 구체적인 단계와 예제를 제공합니다.

단계 1: XML 레이아웃 작성 먼저, `HorizontalScrollView`와 `LinearLayout`을 XML 레이아웃 파일에 추가합니다.

```xml ``` 단계 2: 아이템 추가하는 코드 작성 Java/Kotlin 파일에서 `LinearLayout`에 아이템을 추가하는 코드를 작성합니다.

Java 코드 예제 ```java // MainActivity.java import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private LinearLayout container; private int itemCount = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); container = findViewById(R.id.container); Button addButton = findViewById(R.id.addButton); addButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addItem(); } }); } private void addItem() { itemCount++; TextView newItem = new TextView(this); newItem.setText("Item " + itemCount); newItem.setLayoutParams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); container.addView(newItem); } } ``` Kotlin 코드 예제 ```kotlin // MainActivity.kt import android.os.Bundle import android.view.View import android.widget.Button import android.widget.LinearLayout import android.widget.TextView import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { private lateinit var container: LinearLayout private var itemCount = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) container = findViewById(R.id.container) val addButton: Button = findViewById(R.id.addButton) addButton.setOnClickListener { addItem() } } private fun addItem() { itemCount++ val newItem = TextView(this).apply { text = "Item $itemCount" layoutParams = LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ) } container.addView(newItem) } } ``` 단계 3: 버튼 추가 (선택 사항) 위의 예제에서 `addButton`을 사용하여 아이템을 추가합니다.

이 버튼을 XML 레이아웃에 추가해야 합니다.

```xml
작성자: 이시온 [비회원] | 작성일자: 1년 전 2025-04-19 11:20:42
조회수: 158 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.