Java 为什么addView()在Android Studio中重置我的布局?
我有一个线程,它在我的主活动中调用一个函数,该函数应该在我的布局中的某个位置添加一个图像。。当我调用我的函数时,所有功能都正常工作,但我的布局参数(在我的情况下为边距)在我调用时重置:Java 为什么addView()在Android Studio中重置我的布局?,java,android,android-studio,layout,Java,Android,Android Studio,Layout,我有一个线程,它在我的主活动中调用一个函数,该函数应该在我的布局中的某个位置添加一个图像。。当我调用我的函数时,所有功能都正常工作,但我的布局参数(在我的情况下为边距)在我调用时重置: myLayout.addView(newImage); 这是我的线程调用的函数: public void createImageAt(Point location) { final ImageView newImage = new ImageView(this); final Relative
myLayout.addView(newImage);
这是我的线程调用的函数:
public void createImageAt(Point location) {
final ImageView newImage = new ImageView(this);
final RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(90, 90);
params.leftMargin = location.x;
params.topMargin = location.y;
newImage.setImageResource(R.drawable.image);
newImage.setLayoutParams(params);
final RelativeLayout myLayout = (RelativeLayout) findViewById(R.id.gameLayout);
myLayout.post(new Runnable() {
@Override
public void run() {
myLayout.addView(newImage);
}
});
}
我的问题是,我必须通过移动leftMargin来滑动布局,当我调用写在margin上方的函数时,即使它是-200px,也会跳回到0。如果问题出现,状态没有保存,则生成
newImage
全局变量并重用它。只需使用myLayout.addView(newImage)代码>和myLayout.remove(新图像)代码>您的问题是(a)调用addView()
将myLayout
的左边距重置为零,或者(b)调用addView()
忽略newImage
的布局参数中设置的边距?我的问题是(a)点。也许我说得很糟糕,我很抱歉。也许我说得很糟糕,但我的问题不是那样;图像正确显示在右侧位置,但当我将其(图像)添加到布局中时,布局会重置其左边距