-1

所以我正在研究一个线性布局,我动态地添加和删除 Imagebuttons。因此,每次单击图像按钮并采取行动时,图像按钮都会被删除并用另一个图像按钮/秒进行更改。问题是我想保持点击按钮的位置,这样我就可以在同一位置添加一个新的图像按钮。

            final ViewGroup.LayoutParams lpiv =  iv.getLayoutParams();
            il.removeView(iv);

            int ilBtn = R.drawable.ta;

            iv3.setImageResource(ilBtn);
            iv5.setImageResource(ilBtn);

            iv3.setClickable(false);
            iv.setClickable(false);
            il.addView(iv5, lpiv);
            il.addView(iv3, lpiv);
            //iv3.setLayoutParams(lpiv);
4

3 回答 3

1

纠正我,但只是更改 ImageButton 的图像而不是添加新按钮会更容易吗?要区分状态,只需检查图像或状态变量。

customImageButton.setBackgroundResource(R.drawable.imageName);
this.status = this.NEW_STATUS;
于 2013-08-12T15:51:00.110 回答
0

代码是否粘贴在问题的正文中OnClickListener?如果是这样,只需在调用之前对其进行修改以执行以下操作removeView()

float originalX = view.getX();
float originalY = view.getY();

view对正在单击的 ImageButton 的引用在哪里,然后在您的新按钮上调用setX()和。setY()

只是提醒一下,这仅在单击的按钮和添加的按钮的高度和高度相同的情况下才有效。如果不是,您必须根据原始 X/Y 与高度/宽度差异进行一些计算,以找到相同的 x,y 点。

于 2013-08-12T14:47:54.600 回答
0

LinearLayout.indexOfChild(View child)在调用 remove 之前使用,然后addView(View child, int index)使用该索引调用。

于 2013-08-12T15:44:24.327 回答