У меня есть линейный макет draggableBallsContainer, который включает в себя 10 вертикально выровненных шариков, которые можно перетаскивать.После перетаскивания некоторых шариков в другой макет я хочу повторно инициализировать «draggableBallsContainer», нажав на кнопку.
После нажатия на кнопку шарики выровнены неправильно, а некоторые из нихдаже больше не видны внутри "draggableBallsContainer".
здесь xml:
<LinearLayout
android:id="@+id/draggableBallsContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_margin="5dp"
android:layout_weight="2"
android:background="@drawable/background_right_layout"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/ball_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:contentDescription=""
android:src="@mipmap/ball" />
.
.
/* balls removed for readability purposes */
.
.
<ImageView
android:id="@+id/ball_10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:contentDescription=""
android:src="@mipmap/ball" />
</LinearLayout>
OnClick запустит этот код:
draggableBallsContainer.removeAllViews();
//int i = 0;
LinearLayout.LayoutParams ballLayoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f);
ballLayoutParams.gravity = Gravity.CENTER;
for (ImageView ball : balls) {
draggableBallsContainer.addView(ball, ballLayoutParams);
}
Запустив этот код,я ожидаю получить то же самое начальное состояние (10 шаров по вертикали).Тем не менее, только некоторые шары будут отображены и «случайно» выровнены.
Я попытался назвать недействительным в качестве ответов на некоторые предложенные похожие темы, но тщетно.
Буду признателен за вашу помощь и заранее спасибо.