<item name="android:ellipsize">middle</item>
<item name="android:maxLines">2</item>
我试过删除 attrs。一次一个,但 ellipSize 似乎在任何情况下都不起作用。
这就是它的外观。
完整的单词是:“元素#1 ASDASDASDASDASDASDASDASD”
android:text='@{element.element_title + " ASDASDASDASDASDASDASDASD"}'
在我看来,主要问题之一是动态计算的维度太多,它选择以错误的顺序执行动作/执行属性。
这些是正常工作的主要和相关属性:
<item name="android:maxLines">2</item>
<item name="autoSizeTextType">uniform</item>
<item name="autoSizeMaxTextSize">@dimen/text_small</item>
<item name="autoSizeMinTextSize">@dimen/text_small_small</item>
令我惊讶的是,“maxLines”与“autoSizeTextType”的组合效果很好……
现在,如果...我删除了这 3 行:
<item name="autoSizeTextType">uniform</item>
<item name="autoSizeMaxTextSize">@dimen/text_small</item>
<item name="autoSizeMinTextSize">@dimen/text_small_small</item>
...有一个变化,但不是更好:
这些是我最直接的属性:
在样式.xml 中:
<style name="small_frame_text_small_bold_autoSize" parent="small_frame_padding" >
<item name="android:fontFamily">@font/lekton_code_italic</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">@dimen/text_small</item>
<item name="android:textColor">@color/material_on_background_emphasis_high_type</item>
<item name="android:ellipsize">middle</item>
<item name="android:maxLines">2</item>
<item name="autoSizeTextType">uniform</item>
<item name="autoSizeMaxTextSize">@dimen/text_small</item>
<item name="autoSizeMinTextSize">@dimen/text_small_small</item>
</style>
现在在itemBinding xml里面实现样式:list_item.xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:divider="?attr/dividerVertical"
android:showDividers="middle"
android:gravity="center_horizontal|bottom"
>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/element_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text='@{element.element_title + " ASDASDASDASDASDASDASDASD"}'
style="@style/small_frame_text_small_bold_autoSize"
android:layout_weight="1.2"
tools:text="Title"
android:letterSpacing="0.06"
android:gravity="center_horizontal|bottom"
/>