3

我已经构建了一个按钮栏,并希望它像外部按钮占据 40% 的空间而中间按钮占据 20% 的空间那样展开。正如您在屏幕截图中看到的那样,这是可行的,但文本在按钮内被裁剪。

按钮文本被裁剪为 1 个粗细大小

我发现文本保持在 1 权重(=20%)的范围内,尽管按钮“知道”它有更多空间 - 否则它不会正确填充可绘制的背景。

这是按钮栏的设置:

<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@id/headerbar_top"
        android:layout_width="match_parent"
        android:layout_height="@dimen/headerbar_divided_height"
        android:orientation="horizontal"
        android:gravity="center"
        android:weightSum="5"
        >

    <Button
            android:id="@id/headerbar_btn_left"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="2"
            android:gravity="center_horizontal|bottom"
            android:paddingBottom="@dimen/headerbar_paddingBottom"
            android:textSize="@dimen/headerbar_textSize"
            android:textColor="@color/font"
            android:text="Spots"
            android:maxLines="1" android:lines="1"
            android:ellipsize="end"
            android:background="@drawable/headerbar_button_left_states"
            android:onClick="onHeaderbarBtnClick"
            android:layout_marginRight="@dimen/headerbar_divided_margin"
            />

    <Button
            android:id="@id/headerbar_btn_center"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center_horizontal|bottom"
            android:paddingBottom="@dimen/headerbar_paddingBottom"
            android:textSize="@dimen/headerbar_textSize"
            android:textColor="@color/font"
            android:maxLines="1" android:lines="1"
            android:ellipsize="end"
            android:background="@drawable/headerbar_button_center_states"
            android:onClick="onHeaderbarBtnClick"
            android:layout_marginRight="@dimen/headerbar_divided_margin"
            android:layout_marginLeft="@dimen/headerbar_divided_margin"
            />

    <Button
            android:id="@id/headerbar_btn_right"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="2"
            android:gravity="center_horizontal|bottom"
            android:paddingBottom="@dimen/headerbar_paddingBottom"
            android:textSize="@dimen/headerbar_textSize"
            android:textColor="@color/font"
            android:text="Tours"
            android:maxLines="1" android:lines="1"
            android:ellipsize="end"
            android:background="@drawable/headerbar_button_right_states"
            android:onClick="onHeaderbarBtnClick"
            android:layout_marginLeft="@dimen/headerbar_divided_margin"
            />
</LinearLayout>

有谁知道为什么按钮文本的行为如此奇怪?

编辑:这是左按钮的 XML-drawable:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/headerbar_button_left_on" android:state_selected="true"/>
    <item android:drawable="@drawable/headerbar_button_left_off"/>
</selector>

这里是drawables本身:

未选中左键的可绘制资源 选择左键的可绘制资源

4

1 回答 1

1

android:ellipsize="end"从按钮的声明中删除。

另外:您的 9-patch-drawables 似乎缺少内容区域。下角和右上角用于 9-patch 内容。这是一个关于 9 补丁的简单教程。

于 2012-09-12T12:55:00.567 回答