2017-03-13 4 views
1

응용 프로그램을 개발 중이지만 약간의 문제가 있습니다. 저는 Borderless Button 스타일 (style="@style/Base.Widget.AppCompat.Button.Borderless.Colored")의 엄청난 팬이지만 버튼에 패딩을 바꿀 수는 없습니다. 패딩을 변경해야하는 이유는 무엇입니까? 단추의 최소 패딩 또는 너비가 불쾌 해 보이게 만들거나 낭비 공간을 만들 수 있기 때문입니다. 아주 작은 텍스트가있을 때이 문제를 볼 수 있습니다테두리없는 단추의 여백 변경

enter image description here enter image description here

밀봉 된 간격은 버튼의 최소 폭이 '캡'어디 하나있다. 나는 패딩을 프로그래밍 방식으로 제로로 설정하려고 시도했지만 XML에서 패딩을 사용하고 있지만 아무 것도 작동하지 않습니다. 나는 AlertDialog 나쁜로이 문제가 발생하지 않는 것을 발견했습니다 :

enter image description here enter image description here

당신은 백그라운드에서 대화 상자에 비해 '출장'간격 카드를 볼 수 있습니다. 내 질문은 패딩을 어떻게 줄일 수 있을까요? 단추에 대한 사용자 지정 스타일을 작성하지 않아도됩니다.

답변

1

하나의 옵션은 버튼에 AlertDialog 버튼 스타일을 적용하는 것입니다 : 더 자세한 답변을

style="@style/Widget.AppCompat.Button.ButtonBar.AlertDialog" 

는, 여기에 텍스트 주위의 공간은 정확히 패딩 없습니다. 최소 크기는 스타일에서 설정 한 다른 속성에 의해 결정됩니다. 왜 그런가하면 안쪽 여백을 조정하려고해도 효과가 없으며 안쪽 여백은 더 큰 버튼 (예 : 긴 텍스트)에만 영향을 미치기 시작합니다.

우리가 스타일에 잠긴다면 도움이 될만한 유용한 기술이 있음을 알 수 있습니다. AlertDialog 버튼 스타일은 다음과 같습니다

<!-- Alert dialog button bar button --> 
<style name="Widget.Material.Button.ButtonBar.AlertDialog" 
    parent="Widget.Material.Button.Borderless.Colored"> 
    <item name="minWidth">64dp</item> 
    <item name="minHeight">@dimen/alert_dialog_button_bar_height</item> 
</style> 

는 그래서 AlertDialog 버튼을 실제로 Borderless.Colored 스타일에서 상속 및 특성 만 몇 꼬집는

: minWidthminHeight을.

위와 비슷한 스타일을 직접 설정하거나 minWidth 및/또는 minHeight을 버튼에 직접 설정하여이 작업을 수행 할 수도 있습니다.

<Button 
    .... 
    style="@style/Widget.AppCompat.Button.Borderless.Colored" 
    android:minWidth="48dp" 
    android:minHeight=... /> 

잘하면 당신이 찾고있는 결과를 얻을이 주위에 재생, 당신은 멀리 0dp하는 minWidthminHeight 설정으로 가면, 그것은 모든 콘텐츠 및 패딩에 대해됩니다.

+0

답장을 보내 주셔서 감사합니다. 이 솔루션은 아무 것도없는 것보다 낫지 만 패딩을 훨씬 적게 만들 수있는 방법이 있기를 희망합니다. – Pythogen

+0

@Pythogen 답변을 확장했습니다. 도움이 되었기를 바랍니다. –