我刚开始学习安卓开发,遇到了一个问题,现有的StackOverflow问题无法解决。
在自定义项列表中我正在加载一个TextView对象,它可以使用2种不同的样式(都在styles.xml中定义)-如果有一个次要的TextView对象,则应用的样式是itemHeadingText_Medium,否则是itemHeadingText_Large。我在ListItemAdapter类中以编程方式更改样式。
<!-- Heading in each list item -->
<style name="itemHeadingText_Large" parent="@android:style/TextAppearance.Large">
<item name="android:textStyle">bold</item>
<item name="android:textColor">@android:color/black</item>
<!-- Testing height and gravity -->
<item name="android:layout_height">100dp</item>
<item name="android:gravity">center_vertical</item>
</style>
<!-- Heading in each list item -->
<style name="itemHeadingText_Medium" parent="@android:style/TextAppearance.Medium">
<item name="android:textStyle">bold</item>
<item name="android:textColor">@android:color/black</item>
</style>
很遗憾,android:layout_height和android:gravity未应用于该视图,整个应用程序看起来像这样。以下是两个TextViews的定义:
<TextView
android:id="@+id/heading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/darker_gray"/>
<TextView
android:id="@+id/secondary"
style="@style/itemSecondaryText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/holo_red_light"/>
我想垂直居中第二个项目截图中提供的Lorem Ipsum标题。
编辑:2017年6月25日
我通过使用getLayoutParams().height以编程方式更改高度,并在TextView xml定义中添加android:gravity属性来实现了所需的效果 - 毕竟,在两种样式中,文本都可以在其TextView中垂直居中。
尽管如此,我如何在styles.xml中完成这项任务的问题仍然存在!