所以我正在进行线性布局,我在其中动态添加和删除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);
答案 0 :(得分:1)
纠正我,但改变ImageButton的图像并不容易 添加新按钮?要区分状态,只需检查图像或状态变量。
customImageButton.setBackgroundResource(R.drawable.imageName);
this.status = this.NEW_STATUS;
答案 1 :(得分:0)
问题中粘贴的代码是OnClickListener
的正文吗?如果是这样,只需在调用removeView()
之前修改它以执行以下操作:
float originalX = view.getX();
float originalY = view.getY();
其中view
是对点击的ImageButton的引用,然后在新按钮上调用setX()
和setY()
。
只是单挑,这只有在点击按钮并且添加的按钮高度相同时才有效。如果它们不是,你将不得不根据原始的X / Y与高度/宽度差进行一些计算,以找到相同的x,y点。
答案 2 :(得分:0)
在调用remove之前使用LinearLayout.indexOfChild(View child)
,然后使用该索引调用addView(View child, int index)
。