【问题标题】:RelativeLayout alignment/positioning not workingRelativeLayout 对齐/定位不起作用
【发布时间】:2014-09-07 18:00:32
【问题描述】:

我环顾四周,找不到解决此问题的方法。是的,以前有人问过这个问题,但是我找到的解决方案都没有解决我的问题。
所以基本上,我的问题是我需要两个视图来对齐它们容器的右侧,一个挨着另一个。但是我无法阻止它们重叠。

RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams((int) (screenWidth*0.30), LayoutParams.WRAP_CONTENT);
param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
newSpinner.setLayoutParams(param);
newSpinner.setId(-101);

param = new RelativeLayout.LayoutParams((int) (screenWidth*0.10), LayoutParams.WRAP_CONTENT);
param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
param.addRule(RelativeLayout.LEFT_OF, newSpinner.getId());
newButton.setLayoutParams(param);

上面的代码结果如下: http://i.imgur.com/o1GlZLV.png

param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

虽然删除上述行会导致:http://i.imgur.com/25vlmrw.png

那么解决方法是什么?

【问题讨论】:

  • 经过进一步检查,我的代码在纵向模式下工作正常,并且它只是按钮消失/重叠的横向。
  • 欢迎来到Stack Overflow!您似乎拒绝了其他人的编辑。请注意,即使在声望达到 2000 之前,您也可以随时编辑自己的帖子并批准对帖子的建议编辑。

标签: android android-relativelayout


【解决方案1】:

您对微调器和按钮使用相同的对象“参数”。 首先尝试对每个参数使用类似 param1 和 param2。 其次尝试使用

param.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 用于一项和 param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 为另一个避免重叠。

也试试这个解决方案。使用param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 创建一个相对布局,然后在此相对布局中添加微调器和按钮,其中一项使用ALIGN_PARENT_RIGHT,另一项使用LEFT_OF。还要确保使用适当的项目宽度,以免它们重叠

【讨论】:

  • 您的第一个建议适用于肖像,但“?”按钮在横向模式下消失。然而,第二个建议没有帮助,因为我需要将两者都对齐到右侧,因为左侧还有其他项目。
  • 我已经更新了答案,现在尝试第一个和第三个解决方案
  • 不用顺便用不同的param对象,因为每次复用的时候,我都重新定义为“new RelativeLayout.LayoutParams”
【解决方案2】:

删除: param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

来自新按钮。

【讨论】:

  • 正如问题中提到的,我已经尝试过了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-03
  • 2015-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多