2012-09-24 3 views
10

RadioButton에 설정 한 텍스트에 "label"을 지정하고 버튼 왼쪽에 표시하고 가운데에 약간의 여백을 넣고 싶습니다. 내가 RadioGroup에 다음 RadioButton 다른 것을 추가하면 내 RadioGroup이 작동하지 않기 때문에 작동하지 않습니다 레이아웃에 추가 TextView 추가Android에서 마진을 남기고 라디오 버튼의 왼쪽에있는 텍스트

(여러 개의 버튼을 선택할 수 있습니다).

그래서, 어떻게의 RadioButton이 android:button="@null"을 설정하고 android:drawableRightRadioButton의 그리기를 추가하여 <text><buttondrawable> 대신 <buttondrawable><text>

답변

36

당신이 이것을 달성 할 수있는 것으로 변경할 수 있습니다. android:drawablePadding을 사용하여 텍스트와 드로어 블 간의 채우기를 변경할 수 있습니다.

<RadioGroup 
     android:id="@+id/radios" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:inputType="text" 
     android:orientation="vertical" > 

     <RadioButton 
      android:id="@+id/first" 
      android:button="@null" 
      android:drawableRight="@android:drawable/btn_radio" 
      android:drawablePadding="20dp" 
      android:layout_width="200dip" 
      android:layout_height="wrap_content" 
      android:text="@string/first" 
      android:textSize="20dip" /> 

     <RadioButton 
      android:id="@+id/second" 
      android:button="@null" 
      android:drawableRight="@android:drawable/btn_radio" 
      android:drawablePadding="20dp" 
      android:layout_width="200dip" 
      android:layout_height="wrap_content" 
      android:text="@string/second" 
      android:textSize="20dip" /> 
    </RadioGroup> 
</RelativeLayout> 
+0

을 가져야한다 RadioGroup, 나는 둘 다 선택할 수 있습니다. –

+0

답변을 업데이트했습니다. 지금 확인하십시오. –

+0

감사합니다. 매우 영리한 솔루션과 나는'android : drawablePadding'으로 원하는 패딩을 쉽게 추가 할 수 있습니다. –

1

위의 대답으로 인해 이미지에 선택 상태가 없습니다.

월 당신이 도움말 : 당신이 패딩을 설정할 수 있습니다 < = 16 API에

  • 라디오 버튼의 뷰 경계에 패딩 기준을 설정하기 위해 라디오 버튼을 떠났다. 또한 패치 9 배경은 뷰와 관련된 뷰 범위를 변경합니다.

  • API 17에서 왼쪽 패딩은 라디오 버튼 드로어 블을 기준으로합니다. 패치 9에 대해서도 마찬가지입니다. 패딩 차이를보다 잘 설명하기 위해 첨부 된 스크린 샷을 참조하십시오.

코드를 파헤 치면 api 17에서 getHorizontalOffsetForDrawables라는 새로운 방법을 찾을 수 있습니다. 이 메서드는 라디오 버튼의 왼쪽 패딩을 계산할 때 호출됩니다 (따라서 그림에 표시된 추가 공간).

TL; DR 당신은 라디오 버튼이 지원되는 최소 SDK를위한 스타일과 내부의 그 두 가지를 갖는 API에 대한 또 다른 스타일의 17 세 이상

대답이 this same question에서 @ 제임스 BACA 응답한다

+0

본질을 코드 스 니펫에 추가하십시오. 향후 독자는 더 자세한 정보가 필요하지 않으면 링크를 따를 필요가 없습니다. –

+0

또한 응답 순서가 다를 수 있으므로 포스터의 이름으로 대답하는 것이 좋습니다. –

+0

제안 해 주셔서 감사합니다. @JeroenKransen – actsai

관련 문제