加权按钮上的文字与按钮的占用空间不同

时间:2012-09-12 12:41:35

标签: android android-layout button nine-patch

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

Button text gets cropped at 1 weight size

我发现文本保持在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>

以下是抽奖本身:

Drawable resource for left button unselected Drawable resource for left button selected

1 个答案:

答案 0 :(得分:1)

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

另外:你的9-patch-drawable似乎缺少了内容区域。底部和右角用于9补丁内容。 Here's a good simple tutorial on 9-patches.