gpt4 book ai didi

android - 设置按钮文本以匹配所有 Android 中最小的文本大小

转载 作者:行者123 更新时间:2023-12-04 10:29:51 24 4
gpt4 key购买 nike

所以我有一个由四个按钮组成的布局,每个按钮都带有不同的文本,通过使用 android:autoSizeTextType="uniform"android:maxLines="1"文本将根据按钮尺寸调整大小。
问题是具有小文本的按钮与其他按钮(文本大小)相比似乎很大,我想要一种方法将所有文本调整为最小的所有文本,以便具有更具凝聚力的设计。
Image of the case

最佳答案

  • 在布局的根目录添加全局布局监听器
  • 在监听器回调中获取每个 Textview 的文本大小
  • 获取这些文本大小中的最小值
  • 使用 TextViewCompat 关闭自动调整大小功能
  • 将文本大小设置为所有 Textviews(获得的最小值)
      root.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
    root.getViewTreeObserver().removeOnGlobalLayoutListener(this);
    float txtSize1 = btn1.getTextSize();
    float txtSize2 = btn2.getTextSize();
    float minSize = Math.min(txtSize1, txtSize2);
    TextViewCompat.setAutoSizeTextTypeWithDefaults(btn1, TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE);
    TextViewCompat.setAutoSizeTextTypeWithDefaults(btn2, TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE);

    btn1.setTextSize(TypedValue.COMPLEX_UNIT_PX, minSize);
    btn2.setTextSize(TypedValue.COMPLEX_UNIT_PX, minSize);

    }
    });

  • 如果您在任何 Textviews 中有动态文本,则不应删除全局布局监听器。此外,当文本更改时,将所有 TextViews 的 AutoSizeTextType 设置为统一,并在根上调用请求布局,文本更改后的示例 fragment 如下
       TextViewCompat.setAutoSizeTextTypeWithDefaults(btn1, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);

    TextViewCompat.setAutoSizeTextTypeWithDefaults(btn2, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);

    root.requestLayout();

    关于android - 设置按钮文本以匹配所有 Android 中最小的文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60467466/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com