首页 > 解决方案 > TextView autoSizeTextType 在应用小部件中不起作用

问题描述

无法让 TextView 文本自动调整大小以在应用小部件中工作。

自动调整大小在 Android Studio 的预览中显示良好,但它不适用于实际的小部件。

autosize 不应该在小部件或其他东西中工作吗?

我的文本视图:

<TextView
        android:text="test"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/widget_text"
        android:gravity="center"
        android:background="?android:attr/selectableItemBackgroundBorderless"
        android:clickable="true"
        android:focusable="true"
        android:textColor="#ddd"
        app:autoSizeTextType="uniform" 
        app:autoSizeMaxTextSize="200dp"
        app:autoSizeMinTextSize="12dp"/>

标签: androidandroid-widget

解决方案


autosize 不应该在小部件或其他东西中工作吗?

您的布局假设它被理解那些app-prefixed 属性的东西夸大了。在应用小部件的情况下,情况并非如此。系统使用 stock 扩展布局LayoutInflater,它对这些属性一无所知。这些属性在 an 中起作用的原因AppCompatActivity是因为它替换了它自己的LayoutInflater,它尊重那些app-prefixed 属性。

欢迎您使用android这些(例如,android:autoSizeTextType)。但是,只有在将自动调整大小添加到框架时,它们才会在 Android 8.0 及更高版本上得到认可。

如果自动调整大小对于您的应用小部件的操作至关重要,您需要将您的设置minSdkVersion为 26。


推荐阅读