【问题标题】:Center Text inside Button and reduce button padding在按钮内居中文本并减少按钮填充
【发布时间】:2020-05-22 11:47:06
【问题描述】:

我的按钮是“添加”,你可以看到文本不适合里面并且它在底部部分被剪切,我认为按钮内文本周围的空白太大,这就是为什么我可以不适合。 我不想减小它的大小..

我在 xml 中的按钮:

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_marginTop="10dp"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    >

    <TextView
        android:id="@+id/exp_routine"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginStart="20dp"
        android:layout_marginEnd="20dp"
        android:alpha="1"
        android:gravity="center"
        android:text="Routine"
        android:textAllCaps="true"
        android:textColor="#686868"
        android:textSize="16sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />




    <Button
        android:id="@+id/btn_add"
        style="@style/Widget.MaterialComponents.Button.TextButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:gravity="center"
        android:minWidth="0dp"
        android:minHeight="0dp"
        android:stateListAnimator="@null"
        android:text="add"
        android:textSize="20sp"
        android:includeFontPadding="false"
        android:textAlignment="gravity"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toEndOf="@+id/exp_routine"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

【问题讨论】:

  • 能贴出整个xml代码吗?
  • 请张贴根布局
  • 要么减少textSize,要么尝试将android:includeFontPadding="false"添加到按钮
  • android:includeFontPadding="false" 稍微上移了一点
  • 我添加了根布局

标签: android xml button


【解决方案1】:

除了

android:minWidth="0dp"
android:minHeight="0dp"

您需要将includeFontPadding 设置为false 并将padding 设置为0dp,以便您可以创建新样式并将其用作

 <style name="NoPaddingTextButton" parent="Widget.MaterialComponents.Button.TextButton">
        <item name="android:padding">0dp</item>
        <item name="android:includeFontPadding">false</item>
 </style> 

并使用它

 <Button
        android:id="@+id/btn_add"
        style="@style/NoPaddingTextButton"
        ...
 />

注意:您可能仍会在顶部和底部看到额外的填充,但这是对于 p' 等字符,您可以使用验证它

    android:text="ADD p '`"

【讨论】:

    【解决方案2】:

    在代码中,您的ConstraintLayout 高度是预定义的android:layout_height="40dp",这是导致剪辑的原因,因为按钮的高度更高。

    如果合适,更改为android:layout_height="wrap_content",甚至android:layout_height="match_parent" 将在其根布局的情况下工作

    【讨论】:

      【解决方案3】:

      我尝试修改您的布局,这对我有用。我手动添加了填充并删除了这个 style="@style/Widget.MaterialComponents.Button.TextButton"。 如果此答案不起作用,请发布此样式代码。

      <androidx.constraintlayout.widget.ConstraintLayout android:layout_marginTop="10dp"
      android:layout_width="match_parent"
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_height="wrap_content"
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
      
          <TextView
              android:id="@+id/exp_routine"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_centerInParent="true"
              android:layout_marginStart="20dp"
              android:layout_marginEnd="20dp"
              android:alpha="1"
              android:text="Routine"
              android:textAllCaps="true"
              android:textColor="#686868"
              android:textSize="16sp"
              android:textStyle="bold"
              app:layout_constraintBottom_toBottomOf="parent"
              app:layout_constraintStart_toStartOf="parent"
              app:layout_constraintTop_toTopOf="parent" />
      
      
      
      
          <Button
              android:id="@+id/btn_add"
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:gravity="center"
              android:minWidth="0dp"
              android:background="@android:color/background_dark"
              android:minHeight="0dp"
              android:textColor="@color/colorAccent"
              android:text="add"
              android:textSize="20sp"
              android:padding="10dp"
              app:layout_constraintBottom_toBottomOf="@+id/exp_routine"
              app:layout_constraintStart_toEndOf="@+id/exp_routine"
              app:layout_constraintTop_toTopOf="@+id/exp_routine" />
      </androidx.constraintlayout.widget.ConstraintLayout>
      

      【讨论】:

        猜你喜欢
        • 2012-07-07
        • 2011-08-31
        • 2020-08-06
        • 1970-01-01
        • 2013-04-29
        • 1970-01-01
        • 1970-01-01
        • 2020-05-17
        • 2020-10-20
        相关资源
        最近更新 更多