Android 安卓-按钮随机位置怪异行为

Android 安卓-按钮随机位置怪异行为,android,button,random,setx,Android,Button,Random,Setx,所以我试着在一个随机位置上显示3个按钮。首先,我使用以下代码根据屏幕大小给他们一个随机位置: float x = new Random().nextInt(metrics.widthPixels / 2); float y = new Random().nextInt(metrics.heightPixels / 2); lbutton1.setX(x); lbutton1.setY(y); float x1 = new Random().nextInt(

所以我试着在一个随机位置上显示3个按钮。首先,我使用以下代码根据屏幕大小给他们一个随机位置:

    float x = new Random().nextInt(metrics.widthPixels / 2);
    float y = new Random().nextInt(metrics.heightPixels / 2);
    lbutton1.setX(x);
    lbutton1.setY(y);
    float x1 = new Random().nextInt(metrics.widthPixels / 2);
    float y1 = new Random().nextInt(metrics.heightPixels / 2);
    lbutton2.setX(x1);
    lbutton2.setY(y1);
    float x2 = new Random().nextInt(metrics.widthPixels / 2);
    float y2 = new Random().nextInt(metrics.heightPixels / 2);
    lbutton3.setX(x2);
    lbutton3.setY(y2);
    lbutton1.setVisibility(View.VISIBLE);
    lbutton2.setVisibility(View.VISIBLE);
    lbutton3.setVisibility(View.VISIBLE);
此时按钮被设置在.xml文件中。当我试图调用他们的方法使其可见时,我使用以下代码:

    float x = new Random().nextInt(metrics.widthPixels / 2);
    float y = new Random().nextInt(metrics.heightPixels / 2);
    lbutton1.setX(x);
    lbutton1.setY(y);
    float x1 = new Random().nextInt(metrics.widthPixels / 2);
    float y1 = new Random().nextInt(metrics.heightPixels / 2);
    lbutton2.setX(x1);
    lbutton2.setY(y1);
    float x2 = new Random().nextInt(metrics.widthPixels / 2);
    float y2 = new Random().nextInt(metrics.heightPixels / 2);
    lbutton3.setX(x2);
    lbutton3.setY(y2);
    lbutton1.setVisibility(View.VISIBLE);
    lbutton2.setVisibility(View.VISIBLE);
    lbutton3.setVisibility(View.VISIBLE);
问题是,当按钮1出现在setXx、setYy设置的位置时,我能分辨出的其他两个按钮X位置并没有取x1、x2的值,但它取的是随机值,我无法解释它们是从哪里取的。所有按钮Y位置正常。。 知道为什么会发生这种情况吗?

检查您的活动\u main.xml。 可能您忘记删除按钮的定位属性:下面的android:layout\u、android:layout\u alignParentLeft、android:layout\u alignParentStart等。
+您应该使用RelativeLayout。

View.GONE by definition将完全删除视图,而不仅仅是隐藏它。我相信这是为了不回应在这种状态下改变的观点。如果你想隐藏它们,你应该使用View.INIVISIBLE,但如果我没记错的话,你可以进行更新。如果问题解决了,我不应该把它也用于lbutton1吗?这是一件奇怪的事情。lbutton1工作正常。。我还试过View.INVISIBLE,但没有任何改变。实际上,setX和setY并不像人们想象的那样工作。此处:@JaySnayder View.GONE使视图不可见,并且此视图不再占用布局中的任何空间。但视图不会被删除,所以您可以更改它,然后使其变得灵活。您使用什么布局?按钮位于线性布局按钮相对布局上。线性布局不适合你我认为线性是个问题我要测试一下看它是否有效谢谢你!