忽略Android中的样式

时间:2019-03-18 08:04:31

标签: android

应用样式时,由于某些原因,许多参数将被忽略。

<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是一个常规表单元格。样式没有混淆。

2 个答案:

答案 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);