2012-09-12 2 views
3

버튼 막대를 작성 했으므로 바깥 쪽 버튼이 공간의 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 resource for left button unselected Drawable resource for left button selected

+0

먼저 드로어 블은 XML 드로어 블 것으로 보입니다. 코드를 게시 할 수 있습니까? 둘째, 9- 패치 -png 이미지가 사용됩니까? – keyboardsurfer

답변

1

버튼의 선언에서 android:ellipsize="end"을 제거

<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> 

그리고 여기는 드로어 블 자체입니다.

또한 9 패치 드로어 블은 콘텐츠 영역이 누락 된 것 같습니다. 하단과 오른쪽 모서리는 9 패치 내용에 사용됩니다. Here's a good simple tutorial on 9-patches.

+0

ellipsize 매개 변수에 대한 결과는 다음과 같습니다. https://www.dropbox.com/s/7cd25n092flwxpd/button_text_weight_problem_noellipses.png –

+0

Ok. 아마 9 패치. – keyboardsurfer

+1

예! 9patch에 대한 정말 좋은 링크 덕분에 마침내 내 물건에 문제가 생겼습니다. 내용 (채우기) 영역이 정의되지 않았으므로 버튼 경계 내에서 임의의 위치가 필요했습니다. 채우기 영역을 정의한 후 예상대로 작동합니다. 고정 버튼 드로어 블의 모습은 다음과 같습니다. https://www.dropbox.com/s/15ef7t9chqbw0t8/headerbar_button_left_on.9.png –