source

Android 버튼 객체 내에서 텍스트 주변의 내부 패딩을 줄이려면 어떻게 해야 합니까?

gigabyte 2022. 10. 1. 21:20
반응형

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

반응형