【问题标题】:Android - button random position weird behaviorAndroid - 按钮随机位置奇怪的行为
【发布时间】:2015-03-27 11:20:44
【问题描述】:

所以我试图在随机位置出现 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);

此时的按钮在 .xml 文件中设置为 GONE。当我试图调用他们的方法以便他们变得可见时,我正在使用以下代码进行操作:

    lbutton1.setVisibility(View.VISIBLE);
    lbutton2.setVisibility(View.VISIBLE);
    lbutton3.setVisibility(View.VISIBLE);

问题是,虽然 button1 出现在 setX(x),setY(y) 设置的位置,但其他 2 个按钮 X 位置(据我所知)不采用 x1,x2 的值,但它采用随机我无法解释它们来自何处的值。所有按钮 Y 位置都可以.. 任何想法为什么会发生这种情况?

【问题讨论】:

  • View.GONE 根据定义将完全删除视图,而不仅仅是隐藏它。我确实相信这意味着在这种状态下不响应视图的变化。如果你想隐藏它们,你应该使用View.INIVISIBLE,但如果我没记错的话可以更新。
  • 如果问题消失了,我不应该也为 lbutton1 提供它吗?这是奇怪的事情。 lbutton1 工作正常.. 我也试过 View.INVISIBLE 但没有任何改变
  • 基本上 setX 和 setY 并没有像人们认为的那样工作。这里:stackoverflow.com/questions/17411221/…
  • @JaySnayder View.GONE 使视图不可见,而且此视图不再占用布局中的任何空间。但是 View 没有被移除,所以你可以改变它,然后让它变得生动。

标签: android button random setx


【解决方案1】:

检查您的activity_main.xml。 也许你忘了删除按钮的定位属性:android:layout_belowandroid:layout_alignParentLeftandroid:layout_alignParentStart 等。 + 你应该使用RelativeLayout

【讨论】:

  • 你使用什么布局?
  • 按钮采用线性布局
  • 尝试相对布局。线性布局不适合你
  • 我认为线性是问题..我要测试它,看看它是否有效..谢谢伙计!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
  • 2011-11-05
  • 2021-03-16
  • 1970-01-01
相关资源
最近更新 更多