Мне нужна помощь с динамическим добавлением кнопок к ScrollView
. У меня это работает с LinearLayout
, но, очевидно, я могу добавить только столько кнопок, чтобы они больше не появлялись на экране. Мой код ниже с прикрепленным изображением его текущего состояния.
Я пытался изменить каждое вхождение LinearLayout
с помощью ScrollView
в коде, но когда я его запустил, я получил ошибку, в которой что-то указывалось как ScrollViews can only have 1 direct child
.
Я не уверен, как заставить это работать, поэтому, если бы кто-то мог дать мне некоторое руководство о том, как это сделать, я был бы очень благодарен.
Мой код XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
<LinearLayout
android:id="@+id/mainLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_below="@id/imageTextView"
android:layout_centerHorizontal="true">
</LinearLayout>
</RelativeLayout>
Мой Java-код (где я динамически создаю кнопки):
public class Main5Activity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main5);
LinearLayout layout = (LinearLayout) findViewById(R.id.mainLayout);
for (int i = 0; i < 6; i++)
{
LinearLayout row = new LinearLayout(this);
row.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
for (int j = 0; j < 4; j++)
{
final Button btnTag = new Button(this);
btnTag.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
btnTag.setText("" + (j + 1 + (i * 4)));
btnTag.setId(j + 1 + (i * 4));
row.addView(btnTag);
}
layout.addView(row);
}
}
}
Изображение текущего макета.
![image](https://i.stack.imgur.com/Z3HWE.png)