Children views having equal height

做~自己de王妃 提交于 2019-12-13 02:23:27

问题


I have a horizontal LinearLayout with two buttons with text inside. The LinearLayout's and the buttons layout_height is wrap_content.

The text of one of the two buttons takes two lines unlike the other's which takes one line.

So at the end one of the buttons has a bigger height than the other which is something that I don't want.

I know how to solve this programmatically. So the reason I making this question is to know whether I can solve this through xml.

One possible solution is, for the button whose text is one line, set

layout_height="match_parent"

and it works fine.

But the problem here is that generally I don't know which button will occupy the biggest height.

In essence what I want to do is: having a LinearLayout with Views inside I want to set the height of all the children Views to be equal to the height of the View which when has its content wrapped has the max height.

And the question is if this is possible through xml?

An example XML. Also I forgot to add that I already have 0dp in the widths.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/some_string" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/some_other_string" />

</LinearLayout>

回答1:


I guess what you search is android:baselineAligned="false", this will avoid that the text are on the same baseline and the buttons will start at the same y position on the screen.

Here without android:baselineAligned="false":

And here with:

However if you also want that both buttons are equal sized try this layout example:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:baselineAligned="false">

    <Button
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="aaaaa"/>

    <Button
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="bbbbbbb bbbbbbbb bbbbbbbb bbbbbbbbbbbb bbbbbb"/>

</LinearLayout>

That will look like this:




回答2:


Use this thing to set weigh Sum and weight layout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="100" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="10"
    android:orientation="horizontal" >

    <Button
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="Button 1" />

    <Button
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="Button 2" />
    </LinearLayout>

    </LinearLayout>


来源:https://stackoverflow.com/questions/36871276/children-views-having-equal-height

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!