将视图右对齐 (appcelerator alloy)

Align a view to the right (appcelerator alloy)

我正在尝试将视图右对齐,我试过了

右="0" 我尝试在控制器上获取宽度并减去视图大小但没有成功

<View id="logoutAlignRightContainer" layout="horizontal" width="33%" heigh="40dp" right="0">
  <View id="logoutAlignRight" left="" width="72dp" height="40dp" right="0">
  <Label left="3"  class="button" onClick="logoutEvent" width="Titanium.UI.SIZE">Log Out</Label>
</View>

我想将 $.logoutAlignRight 布局到右边,但它仍然在左边

您需要从 logoutAlignRightContainer 中删除 layout=horizo​​ntal。通过添加强制子视图从左侧开始布局...

您问题的答案是复合布局,请阅读以下基础知识:

Titanium 中有三种布局类型(假设有 3 个子视图 A、B、C):

  1. composite(默认)- 它始终将所有子视图保持在其中心位置,这就是为什么您始终可以使用任何 属性,例如 [=16] =]left, right, top, bottom. 因此,A、B 和 C 将位于同一中心或彼此重叠。
    • 如果只设置topbottom,那么它只会决定视图的高度。
    • 如果只设置leftright,则只会决定view的宽度
  2. vertical - 它以堆栈形式对齐子视图,一个在另一个下面。您仍然可以使用 leftrighttopbottom,但你会发现设置 leftright 属性 很容易,但是 topbottom 属性的行为可能与您预期的不同,因为 topbottom 的行为与另一个子项有关意见。
    • 因此,如果您设置 leftright,视图将left/right 对齐并保持与堆栈形式一致。
    • 如果同时设置了leftright,那么就是view的宽度。
    • 如果你设置top,那么它会从parent的top边缘开始计算。
    • 如果你设置bottom,那么bottomspace同样的值,但是子视图仍然会在top或者相应的位置堆栈。
  3. 水平 - 从左到右对齐视图。
    • 如果您设置 left,它会将 space 添加到视图的左边缘。
    • 如果你设置 right,它会添加 space 到视图的右边缘,仍然保持视图从左对齐,所以当你想设置时它很有用水平布局中的视图宽度。

您应该尝试这些布局基础知识,这样您就可以在进一步开发中节省宝贵的时间,并很快就能高效地进行设计。 Titanium 文档很有帮助。