在Android中使EditText和Button具有相同的高度

发布于 2024-09-15 08:16:46 字数 333 浏览 6 评论 0原文

我的 LinearLayout 中有一个 EditText 和一个 Button,我想将它们紧密地对齐在一起,这样它们看起来似乎属于在一起(edittext + micButton用于语音输入)。

现在它们的高度不一样,而且对齐得不太好(Button 似乎比 EditText 低一点)。我知道我可以应用像 -5dp 这样的负边距来使它们靠得更近,但是是否有更好的方法来做到这一点?

将它们设置在特定的容器/布局中,以便它们自动具有相同的高度并且它们之间没有边距?

I have an EditText and a Button in my LinearLayout and I want to align them closely together so they see seem to belong together (edittext + micButton for speech input).

Now they don't have the same height and they aren't really aligned well (Button seems to be a little lower than the EditText). I know I can apply a negative margin like -5dp to make them come closer together, but is there perhaps a better way to do this?

Set them in a specific container/layout so that they will automatically have the same height and no margin between them?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

我早已燃尽 2024-09-22 08:16:46

使用相对布局,您可以根据另一个视图的大小来拉伸视图,而无需知道另一个视图的确切大小。
这是代码:

<RelativeLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
<Button 
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:text="button"
    android:id="@+id/but"/>
<EditText 
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/but"
    android:layout_alignBottom="@id/but"
    android:layout_alignTop="@id/but"
    />
</RelativeLayout>

检查此链接以减少视图之间的空间:
https://groups.google.com/forum/?fromgroups# !topic/android-developers/RNfAxbqbTIk

Using relative layout you can stretch a view depending upon another views size without knowing the exact size of the other view.
Here is the code :

<RelativeLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
<Button 
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:text="button"
    android:id="@+id/but"/>
<EditText 
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/but"
    android:layout_alignBottom="@id/but"
    android:layout_alignTop="@id/but"
    />
</RelativeLayout>

Check this link for reducing space between views :
https://groups.google.com/forum/?fromgroups#!topic/android-developers/RNfAxbqbTIk

零度℉ 2024-09-22 08:16:46

嗯,不知道为什么人们这么在意桌子。由于这两个视图都在 LinearLayout 内(大概的orientation = Horizo​​ntal),因此此命令应在布局中居中:

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" />

    </LinearLayout>

注意:由于 EditText 和 Button 的文本方向可能略有不同,因此您可能需要执行一些操作调整(通过更改边距或填充)以使文本正确对齐。

Hmm, don't know why people bother so much with tables. Since the both Views are within a LinearLayout (presumable orientation=Horizontal), this command should center both within the layout:

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" />

    </LinearLayout>

Note: Since EditTexts and Buttons may orient their text slightly differently, you may have to do some tweaking (by changing margins or padding) to get the text to align properly.

情深如许 2024-09-22 08:16:46

我希望这个解决方案对您的场景有所帮助...这是代码..

    <RelativeLayout
        android:id="@+id/rlLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:orientation="horizontal"
        android:padding="3dp" >

    <EditText
        android:id="@+id/etId"
        android:layout_width="fill_parent"
        android:layout_height="50dip"
        android:background="#c8c8c8"
        android:hint="Edittext"
        android:paddingLeft="20dip"
        android:paddingRight="10dip"
        android:textColor="#000000" />

    <RelativeLayout
        android:id="@+id/rlLayoutid"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignRight="@+id/etId" >

        <Button
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_alignParentRight="true"
            android:layout_marginRight="14dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/calender" />
    </RelativeLayout>
</RelativeLayout>

I hope this solution might help for your scenario...Here is the code..

    <RelativeLayout
        android:id="@+id/rlLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:orientation="horizontal"
        android:padding="3dp" >

    <EditText
        android:id="@+id/etId"
        android:layout_width="fill_parent"
        android:layout_height="50dip"
        android:background="#c8c8c8"
        android:hint="Edittext"
        android:paddingLeft="20dip"
        android:paddingRight="10dip"
        android:textColor="#000000" />

    <RelativeLayout
        android:id="@+id/rlLayoutid"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignRight="@+id/etId" >

        <Button
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_alignParentRight="true"
            android:layout_marginRight="14dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/calender" />
    </RelativeLayout>
</RelativeLayout>

诠释孤独 2024-09-22 08:16:46

@Daniel 这里你可以使用布局权重和权重总和

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center"
        android:weight_sum=2    
        >
    <Button 
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=1
        android:text="button"
        android:id="@+id/but"/>
    <EditText 
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=1       
        />
    </LinearLayout>

@ Daniel Here You can use layout weight and weight sum

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center"
        android:weight_sum=2    
        >
    <Button 
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=1
        android:text="button"
        android:id="@+id/but"/>
    <EditText 
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=1       
        />
    </LinearLayout>
白日梦 2024-09-22 08:16:46

Android 尝试自动调整文本的所有内容,而不是按钮本身。

我花了很长时间才终于弄清楚。这真的很简单。应该修复它。

myButton.setGravity(Gravity.CENTER_VERTICAL);

或者如果它们是连续的..将按钮附加到表格行,然后。

myTableRow.setGravity(Gravity.CENTER_VERTICAL);

Android tries to automatically level everything off of the text and not the buttons themselves.

Took me forever to finally figure it out. Its really simple. Should fix it.

myButton.setGravity(Gravity.CENTER_VERTICAL);

or if they are in a row.. attach the buttons to a table row, then.

myTableRow.setGravity(Gravity.CENTER_VERTICAL);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文