应用样式时,由于某些原因,许多参数将被忽略。
<LinearLayout
android:id="@+id/regionColumn"
android:layout_width="170dp"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/regionHeader"
style="@style/AppTheme.TableHeaderTextView"
android:layout_width="80dp"
android:text="@string/region" />
</LinearLayout>
例如,当您向这种容器中添加具有样式的TextView时,将忽略所有填充和高度。
样式本身:
<style name="AppTheme.TableTextView">
<item name="android:textSize">8pt</item>
<item name="android:paddingTop">10dp</item>
<item name="android:paddingBottom">10dp</item>
<item name="android:paddingLeft">10dp</item>
<item name="android:paddingRight">10dp</item>
<item name="android:layout_height">80dp</item>
</style>
为什么会发生这种情况以及如何解决此问题?
P.S。 TableHeaderTextView
是列标题。 TableTextView
是一个常规表单元格。样式没有混淆。
答案 0 :(得分:0)
将Styles.xml中的样式重命名为AppTheme.TableHeaderTextView
而不是AppTheme.TableTextView
,这样看起来就这样
<style name="AppTheme.TableHeaderTextView">
<item name="android:textSize">8pt</item>
<item name="android:paddingTop">10dp</item>
<item name="android:paddingBottom">10dp</item>
<item name="android:paddingLeft">10dp</item>
<item name="android:paddingRight">10dp</item>
<item name="android:layout_height">80dp</item>
</style>
在Styles.xml
(如果适用)中,使用app=""
代替android=""
来支持较早的版本。在当前标签中,您不需要通过保持原样进行更改。
答案 1 :(得分:0)
我自己解决了这个问题。
缩进必须在LayoutParams
中指定,否则将被忽略。
TableRow.LayoutParams params = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
params.setMargins(5, 20, 20, 30);
textView.setLayoutParams(params);