0

我想完成的事情我确信可以通过代码来完成,但我需要(如果可能的话)通过声明性 XML 来完成。我想将一个按钮设置为另一个按钮高度的一半。

我在 ViewGroup 文档中发现您可以参考其他组件,它甚至说了这么多:

这也可能是对包含此类型值的资源(形式为“@[package:]type:name”)或主题属性(形式为“?[package:][type:]name”)的引用.

但是,我不确定如何将其转换为我需要的。

我的活动xml的基本布局如下:

< 相对布局 ... >

<LinearLayout ... >

    <fragment ... />

    <LinearLayout ... >

        <ImageButton
            ...
            android:id="@+id/userButton"
            android:layout_height=" *tag_button:layout_height / 2? "
            ... />

        <ImageButton
            ...
            android:id="@+id/searchButton"
            android:layout_height=" *tag_button:layout_height / 2? "
            ... />
    </LinearLayout>
</LinearLayout>

<Button
    android:id="@+id/tag_button"
    android:layout_height="wrap_content"
    ... />

< /相对布局>

我真正想要的只是将 userButton:layout_height 和 searchButton:layout_height 设置为 tag_button:layout_height 的一半

提前非常感谢!

4

2 回答 2

1

如果要将两个按钮都放在线性布局中,则可以使用布局权重

<LinearLayout ... >

    <ImageButton
        ...
        android:id="@+id/userButton"
        android:layout_height="0dip"
        android:layout_weight="1"
        ... />

    <ImageButton
        ...
        android:id="@+id/searchButton"
        android:layout_height="0dip"
        android:layout_weight="2"
        ... />
</LinearLayout>

我不确定是否有办法直接引用 XML 中另一个元素的宽度。但是您可以让布局为您完成工作。

于 2013-04-12T23:45:50.267 回答
0

您可以像这样使用重量原则:

<LinearLayout android:layout_height="match_parent"
   android:layout_width="match_parent"
   android:orientation="vertical" >

<Button android:id="@+id/btnUser"
   android:layout_width="wrap_content"
   android:layout_height="0dp"
   android:layout_weight="1" >

<Button android:id="@+id/btnSearch"
   android:layout_width="wrap_content"
   android:layout_height="0dp"
   android:layout_weight="1" >

<Button android:id="@+id/btnTag"
   android:layout_width="wrap_content"
   android:layout_height="0dp"
   android:layout_weight="2" >

</LinearLayout>

这样,您的按钮(搜索和用户)将是按钮标签高度的一半。

注意:权重的概念仅在 中可用LinearLayout,因此如果您有 a RelativeLayout,请尝试在其中添加 type 的子布局LinearLayout,然后,您可以使用android:layout_weight

于 2013-04-12T23:49:51.970 回答