Android 버튼 객체 내에서 텍스트 주변의 내부 패딩을 줄이려면 어떻게 해야 합니까?
그래서 지금 저는 위의 첫 번째 이미지와 같은 버튼을 가지고 있습니다.버튼 자체의 텍스트 주위에 있는 패딩을 줄이려면 어떻게 해야 합니까(두 번째 이미지처럼 보이게 하려면)?
레이아웃 폭 및 높이는 다음과 같이 설정됩니다.
android:layout_width="match_parent"
android:layout_height="wrap_content"
사용자 정의 스타일 모양에 매개 변수가 있습니다."
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
나머지는 색상 속성과 반지름 값뿐입니다.
확실히 하기 위해서, 버튼의 프레임이 「로그인」텍스트에 가까워지도록 해 주세요.
모든 도움과 피드백에 감사드립니다.감사합니다.
이것을 찾는 데 오랜 시간이 걸렸지만, 버튼 안의 텍스트 주위에 있는 "패딩"은 전혀 패딩이 아닙니다.기본 위젯입니다.버튼 스타일에는 다음이 포함됩니다.minHeight
소유물.변화하는minHeight
버튼을 클릭하면 예상대로 패딩을 조정할 수 있습니다.
<Button
android:id="@+id/header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/test"
android:textColor="@color/black"
android:minHeight="40dip"/>
<style name="Widget.Holo.Button" parent="Widget.Button">
<item name="android:background">@android:drawable/btn_default_holo_dark</item>
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
<item name="android:textColor">@android:color/primary_text_holo_dark</item>
<item name="android:minHeight">48dip</item>
<item name="android:minWidth">64dip</item>
</style>
재료 구성 요소 라이브러리에서MaterialButton
디폴트 스타일을 가지다insetBottom
그리고.insetTop
의 가치를 지닌6dp
.
레이아웃에서 변경할 수 있습니다.
<com.google.android.material.button.MaterialButton
android:insetTop="0dp"
android:insetBottom="0dp"
../>
또는 스타일:
<style name="Button_no_insets" parent="Widget.MaterialComponents.Button"..>
<item name="android:insetTop">0dp</item>
<item name="android:insetBottom">0dp</item>
</style>
custom shape.xml 파일에서 시도합니다.
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="1dp"
android:padding="1dp">
또한 버튼의 xml을 변경할 수 있습니다.
android:layout_width="wrap_content"
android:layout_height="wrap_content"
상하의 패딩을 작게 하려면 , 다음의 순서를 사용합니다.
android:paddingTop="2dp"
android:paddingBottom="2dp"
저는 아래를 모두 설정해야 합니다.
minWidth
minHeight
paddingHorizontal
paddingVertical
layout wrap_content
android:paddingVertical="0dp"
android:paddingHorizontal="0dp"
android:minHeight="0dp"
android:minWidth="0dp"
android:layout_width="wrap_content"
단추의 텍스트와 테두리 사이의 모든 공백이 제거되고 테두리(사용할 경우)는 공백 없이 텍스트 주위에 있게 됩니다.
이것이 선택한 답변입니다.
다 했어요.
업데이트: 재료 버튼을 사용하는 경우:>
style="@style/Widget을 사용할 수 있습니다.재료 컴포넌트Button.TextButton" 속성, set insetTop & inset Bottom 0 0dp 。또, app:cornerRadius="0dp"를 설정해, 제 그림과 같은 결과를 취득합니다.
<com.google.android.material.button.MaterialButton
android:id="@+id/btnAddMorePassenger"
style="@style/Widget.MaterialComponents.Button.TextButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/primary_variant"
android:insetTop="0dp"
android:insetBottom="0dp"
android:text="@string/add_passenger"
android:textColor="@color/light"
android:visibility="visible"
app:cornerRadius="0dp"
app:icon="@drawable/ic_profile_24dp"
app:iconGravity="textStart"
app:iconTint="@color/light"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar"
tools:visibility="visible" />
AppCompatButton에서 다음과 같이 테두리 없는 스타일을 사용할 수 있습니다.또한 원하는 배경색을 사용합니다.
Widget.AppCompat.Button.Borderless(보더리스.유색
버튼 코드
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/button_visa_next"
android:background="@color/colorPrimary"
style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_normal"
android:text="@string/next"
android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
출력:
언급URL : https://stackoverflow.com/questions/16394252/how-do-i-reduce-the-inner-padding-around-the-text-within-an-android-button-objec
'source' 카테고리의 다른 글
프로그램에서 JVM 버전을 찾는 방법 (0) | 2022.10.01 |
---|---|
도커 파일에 mysql을 설치하시겠습니까? (0) | 2022.10.01 |
Mac에 설치한 후 ALTER USER 문을 사용하여 MySQL 루트 암호 재설정 (0) | 2022.10.01 |
벤더의 규모를 초과 (0) | 2022.10.01 |
수업의 모든 메서드를 특정 코드 블록으로 시작하는 우아한 방법이 있을까요? (0) | 2022.10.01 |