android RelativeLayout,等间距?

时间:2011-04-23 15:47:39

标签: android android-relativelayout

我正在使用相对布局创建一个计算器屏幕,我有一排标记为1,2和3的按钮。我希望它们均匀分布,但我不知道如何使用相对布局< / p>

我习惯在LinearLayout中使用android:layout_weight函数,并给每个人一个android:layout_width =“fill_parent”的值,以及layout_weight =“1”

任何可以在计算器屏幕上进行此操作的方法(不指定DP或PX)

这是我目前设置的内容,它们在TextView(计算器输出屏幕)下按从左到右的顺序排列。任何建议/解决方案均匀空间,填充屏幕的宽度?

    <TextView
android:id="@+id/textView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/edit_text"
android:layout_margin="6px"
/>

<Button
android:id="@+id/button1"
android:text="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView"
/>

<Button
android:id="@+id/button2"
android:text="2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView"
android:layout_toRightOf="@+id/button1"/>

<Button
android:id="@+id/button3"
android:text="3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView"
android:layout_toRightOf="@+id/button2"
/>

2 个答案:

答案 0 :(得分:18)

如果你想要相等的间距,你不需要RelativeLayout。正如您在问题中所建议的那样,使用LinearLayout。如果需要,请将Buttons放入LinearLayout并将LinearLayout放入RelativeLayout

答案 1 :(得分:2)

最简单的方法是在OnCreate()期间操纵视图。

类似的东西:

OnCreate(Context ctx){
  int w = getWidth();
  int h = getHeight();
  Button B1 = findViewById(R.id.button1);
  B1.setWidth(w/3);
  --repeat for button2,3 textview--
}

另一种选择是使用TableLayout where you stretch the columns并强制按钮填充父级。这需要你使用

<TableLayout    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="0,1,2"
    android:layout_below="@+id/textView"> 
<TableRow><Button
android:id="@+id/button1"
android:text="1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/><Button
android:id="@+id/button2"
android:text="2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</TableRow>
</TableLayout>