所以我想让我的布局看起来像这样:
| button text button |
这样文本就会在我的两个按钮之间居中。我首先尝试使用LinearLayouts和layout_gravity标签,但这会给我一些类似的东西:
| buttontextbutton |
现在我有一个相对布局,其中包含alignParentLeft / Right和centerInParent标签,但布局现在看起来像
| button text buttonnnnnnnnnnnnn |
有没有办法让我的布局正确,文字可以改变长度?
谢谢, 杰克
答案 0 :(得分:3)
使用具有水平方向设置的线性布局。删除所有重力/对齐设置。接下来使用
行android:layout_weight="1"
在两个按钮和textview中。这应该会给你你想要的东西。
编辑:你问它是如何工作的。这来自developer doc
LinearLayout还支持分配 个别孩子的体重。这个 属性赋予“重要性” 视图的值,并允许它 展开以填充任何剩余空间 父视图。儿童观点可以 指定整数权重值,和 那么视图中的任何剩余空间 组被分配给儿童 声明重量的比例。 默认权重为零。例如, 如果有三个文本框和两个 他们宣称权重为1,而 另一个没有给予重量(0), 没有重量的第三个文本框不会 成长,只会占领该地区 其内容所要求的。另外两个 将平均扩大以填补空间 在所有三个盒子之后剩下的 测量。如果是第三个盒子的话 如果权重为2(而不是0), 那么它现在被宣布为“更多 重要的是“比其他人都重要,所以它 获得剩余空间的一半, 而前两个人分享其余的 同样。
答案 1 :(得分:0)
你应该可以使用LinearLayout来做到这一点。试试这个:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 1"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="TextView Centered"
android:gravity="center"
android:layout_weight="1"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2"
/>
</LinearLayout>
在这种情况下,我不确定layout_weight属性是否必要。您可以尝试或不使用,但这应该可以解决问题。
答案 2 :(得分:0)
我建议你试试<TableLayout>
。确保在您的案例中设置android:stretchColumns="0,1,2"
。
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="0,1,2">