我有一个包含3行数字的表格(摘要信息)。当TextViews使用默认重力设置样式时,文本显示正确。
但是当它们使用<item name="android:gravity">right</item>
进行样式设置时,每个TextView只显示它应该的第一个字符。
这甚至包括列标题 - 这里没有显示 - 我甚至没有改变。
我希望表值右对齐以与应用程序的其余部分保持一致,并且我很难理解为什么表中的值会表现得像这样。
这是我的风格(当它不起作用时):
<style name="summary_values">
<item name="android:textSize">@dimen/font_size</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">@color/background</item>
<item name="android:gravity">right</item>
</style>
这是其中一个单元格的XML(它们基本相同)
<TextView
android:id="@+id/value1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="@integer/table_weight_percent_value"
style="@style/summary_values"/>
修改
即使gravity
设置为left
或center
,也会发生截断。
修改2
我已经完全从样式中删除了<item name="android:gravity">right</item>
行,并且有时仍会截断,具体取决于值。我已经完成了我的代码,代码中的值是正确的。
编辑3
删除除字体颜色以外的所有样式后,截断仍然会发生,但我还没弄清楚何时。如果我在输入表中更改数字,则汇总值有时会被截断,有时则不会。
这是表格中的一行。除了id更改之外,所有行都相似。
<TableRow
android:padding="@dimen/pad_12">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="@integer/table_weight_percent_label"
android:text="@string/cho"
style="@style/label_light"/>
<TextView
android:id="@+id/percent_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="@integer/table_weight_percent_value"
style="@style/summary_values"/>
<TextView
android:id="@+id/val1a"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="@integer/table_weight_percent_value"
style="@style/summary_values"/>
<TextView
android:id="@+id/val1b"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="@integer/table_weight_percent_value"
style="@style/summary_values"/>
</TableRow>
编辑4
尝试了很多内容后,我将包含TableView
的内容更改为LinearLayout
。我甚至将TableRow
视图保留原样(仅添加layout_width和layout_height)。令人惊讶的是,它现在有效。
稍微描述奇怪的行为:当它只显示第一个字符时,如果我打开软键盘并再次关闭它,表格将正确显示,直到我更改其中一个EditText值。即使我从表中删除了2个列,它仍然以这种奇怪的方式表现,因此视图有足够的空间。
答案 0 :(得分:1)
在尝试了很多事情后,我将包含TableView的内容更改为具有水平方向的LinearLayout。我甚至离开了TableRow视图(只需添加layout_width和layout_height)。令人惊讶的是,它现在有效。
我不知道它为什么不起作用或为什么它现在起作用。如果有人能够对它有所了解,我真的很感激。