2012-03-12 75 views
1

我正在尝试将EditText与按钮水平对齐,但没有成功。两者应该是相同的高度,他们的顶部和底部应该相互对齐。这里是我的代码:使用按钮对齐EditText

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <EditText 
     android:id="@+id/quantity" 
     android:inputType="number" 
     android:layout_height="fill_parent" 
     android:layout_width="100dp" 
     android:layout_toRightOf="@id/quantity_label" 
     android:background="@android:drawable/editbox_background" /> 
    <Button 
     android:onClick="submitButtonTapped" 
     android:id="@+id/submit" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_toRightOf="@id/quantity" 
     android:drawableLeft="@drawable/submit_icon" 
     android:drawablePadding="5dp" 
     android:text="@string/submit" /> 
</LinearLayout> 

结果是两个元素的底部对齐。 EditText的焦点边界在Button下方延伸。即使使用焦点边框,EditText也不会延伸到Button的高度。我如何让他们对齐?

+0

在android系统的问题:“@机器人:可绘制/ editbox_background”背景= - 没有它按预期工作 – 2012-03-12 09:04:29

+0

没有该行的问题是相反的:顶部对齐和EditText上的底部没有到达按钮的底部。 – jcm 2012-03-12 10:26:00

回答

1
  1. 设置为dimen/line_height值。
  2. 使用此布局
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="@dimen/line_height" 
android:orientation="horizontal" > 
<EditText 
    android:id="@+id/quantity" 
    android:inputType="number" 
    android:layout_height="fill_parent" 
    android:layout_width="100dp" 
    android:background="@android:drawable/editbox_background" /> 

<Button 
    android:id="@+id/submit" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:drawableLeft="@drawable/submit_icon" 
    android:onClick="submitButtonTapped" 
    android:text="@string/submit" /> 
</LinearLayout> 
+0

@ dimen/line_height代码会产生一个错误:找不到与给定名称匹配的资源(位于'layout_height',值为'@ dimen/ line_height')。谢谢。 – jcm 2012-03-12 10:31:21

+0

创建文件RES /值/ dimens.xml:<?XML版本= “1.0” 编码= “UTF-8”> <扪名称= “LINE_HEIGHT”> 50dip ' – 2012-03-12 11:03:14

+0

它硬编码,这我真的想避免,但我会接受这个答案。谢谢。 – jcm 2012-03-14 07:31:44

0

只是增加保证金按钮

这样

android:layout_marginTop="5dp" 

也使用RelativeLayout的,而不是LinearLayout中,还可以使用

andorid:layout_alignTop = "@id/quantity" 

希望这将工作..