我试图在运行时将一些文本视图膨胀为线性布局。这是xml布局(文本视图只是虚拟的):
<LinearLayout
android:id="@+id/show_textContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:orientation="vertical"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="10:20"
android:textAppearance="@style/hugeText"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="10:15"
android:textAppearance="@style/mediumText"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="10:10"
android:textAppearance="@style/mediumText"
/>
</LinearLayout>
这是Android Studio的渲染图:
Rendering
在运行时,我使用自定义样式创建自定义文本视图(名为DynamicTextView):
public class DynamicTextView extends TextView {
public DynamicTextView(Context context) {
super(context, null, R.style.largeText);
}
}
(R.style.largeText为
<style name="largeText">
<item name="android:layout_width">fill_parent</item>
<item name="android:gravity">center</item>
<item name="android:layout_height">wrap_content</item>
</style>
)
在运行时添加的自定义文本视图还具有一些自定义文本外观(与虚拟视图相同):
<style name="mediumText">
<item name="android:textSize">@dimen/mediumTextDimen</item>
<item name="android:textColor">@color/alarmBlueMedium</item>
<item name="android:textStyle">bold</item>
</style>
您可能希望虚拟视图和运行时文本视图以相同的方式对齐,但令人惊讶的是,它们没有:
Runtime
我无法理解引擎盖下面发生了什么?