Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在XML中,按钮大小随字体大小而变化_Android_Xml_Button_Font Size - Fatal编程技术网

Android 在XML中,按钮大小随字体大小而变化

Android 在XML中,按钮大小随字体大小而变化,android,xml,button,font-size,Android,Xml,Button,Font Size,我知道这听起来很简单,但我想更改按钮的字体大小以填充按钮。即使文本在我降低文本高度时不会占用按钮内的所有空间,例如,按钮的高度也会降低。是否有任何方法可以更改文本大小,使其填充按钮内的空间,或者我只需使用图像按钮 情况如下:- 请看,我使用我的线性布局作为按钮的背景。第二个按钮的大小随字体大小而变化。我只希望它的大小与第一个按钮相同,但文本大小较小。更新 您的第二个按钮实际上并不是更小,它只是以一种您不一定期望的方式对齐 带有TextView或subclass的水平线性布局(哪个按钮是子类)将基

我知道这听起来很简单,但我想更改按钮的字体大小以填充按钮。即使文本在我降低文本高度时不会占用按钮内的所有空间,例如,按钮的高度也会降低。是否有任何方法可以更改文本大小,使其填充按钮内的空间,或者我只需使用图像按钮

情况如下:-

请看,我使用我的线性布局作为按钮的背景。第二个按钮的大小随字体大小而变化。我只希望它的大小与第一个按钮相同,但文本大小较小。

更新 您的第二个按钮实际上并不是更小,它只是以一种您不一定期望的方式对齐

带有TextView或subclass的水平线性布局(哪个按钮是子类)将基线对齐子类。这意味着他们将确保行中所有文本的底边处于相同的高度。由于您的第二个按钮使用较小的文本,因此按钮内的文本底部将更高,因此LinearLayout强制整个按钮向下以适应

将此属性添加到线性布局:

起初的 首先,我假设您使用的是android:layout\u height=wrap\u content。如果不希望按钮的高度与字体大小成比例关系,则必须将其更改为某个固定值,或者如果希望按钮的大小与其父按钮的大小相同,则必须匹配其父按钮

至于为什么文本没有占据所有的空间,那是因为按钮自动内置了填充。您可以通过定义android:padding=0dp来删除此填充

但是,您很快就会注意到,如果没有填充和太大的文本,按钮看起来非常糟糕。如何解决这一问题真正符合您的设计要求

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="32dp"
        android:layout_gravity="center_horizontal"
        android:padding="0dp"
        android:textSize="36sp"
        android:text="Hello world"/>

</FrameLayout>
使现代化 您的第二个按钮实际上并不是更小,它只是以一种您不一定期望的方式对齐

带有TextView或subclass的水平线性布局(哪个按钮是子类)将基线对齐子类。这意味着他们将确保行中所有文本的底边处于相同的高度。由于您的第二个按钮使用较小的文本,因此按钮内的文本底部将更高,因此LinearLayout强制整个按钮向下以适应

将此属性添加到线性布局:

起初的 首先,我假设您使用的是android:layout\u height=wrap\u content。如果不希望按钮的高度与字体大小成比例关系,则必须将其更改为某个固定值,或者如果希望按钮的大小与其父按钮的大小相同,则必须匹配其父按钮

至于为什么文本没有占据所有的空间,那是因为按钮自动内置了填充。您可以通过定义android:padding=0dp来删除此填充

但是,您很快就会注意到,如果没有填充和太大的文本,按钮看起来非常糟糕。如何解决这一问题真正符合您的设计要求

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="32dp"
        android:layout_gravity="center_horizontal"
        android:padding="0dp"
        android:textSize="36sp"
        android:text="Hello world"/>

</FrameLayout>

为您的按钮使用固定大小而不是包装内容


f,这对你的设计不起作用,考虑用约束布局或FrAMLayayOUT或RelialayOUT在按钮的顶部覆盖TeXVIEW。之后,您可以将TextView的focusable、focusableInTouchMode和clickable属性设置为false,这样它就不会拦截按钮的点击。

为按钮使用固定大小而不是包装内容


f,这对你的设计不起作用,考虑用约束布局或FrAMLayayOUT或RelialayOUT在按钮的顶部覆盖TeXVIEW。之后,您可以将TextView的focusableInTouchMode设置为focusableInTouchMode,将clickable properties设置为false,这样它就不会拦截按钮的点击。

我有一个固定的按钮大小。我使用了android:padding=0dp,但问题仍然存在,按钮大小会随着textsize的变化而变化。发布布局,我们可能会找到答案。我已经添加了整个问题,请参阅yourself@OmarAhmed我已将我的答案更新为解决您发布的布局问题。我有一个固定的按钮大小。我使用了android:padding=0dp,但问题仍然存在,按钮大小随textsize的变化而变化。发布您的布局,我们可能能够解决它。我已经添加了整个问题,请参阅yourself@OmarAhmed我已经更新了我的答案,以解决您发布的布局问题。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="32dp"
        android:layout_gravity="center_horizontal"
        android:padding="0dp"
        android:textSize="36sp"
        android:text="Hello world"/>

</FrameLayout>