我是Android开发的新手,我偶然发现了一个在现有 StackOverflow 问题的帮助下无法解决的问题。
在自定义项列表中,我正在加载 TextView 对象,该对象可以使用2种不同的样式(均在 styles.xml 中定义) - 如果有辅助< em> TextView 对象,应用的样式是 itemHeadingText_Medium ,如果不是,则 itemHeadingText_Large 。我正在 ListItemAdapter 类中更改programmaticaly的样式。
<!-- 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 未应用于视图,整个应用程序看起来像that。以下是 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 以编程方式更改高度并将android:gravity属性添加到 TextView xml定义中来实现我想要的目标 - 之后在两种样式中,文本都可以在 TextView 中垂直居中。
尽管如此,关于如何在 styles.xml 中执行此操作的问题仍然存在!
答案 0 :(得分:0)
android:gravity将指定文本应如何在TextView中布局,如果View大于文本
android:layout_gravity将指定View本身应如何在其ViewGroup中布局。
我会尝试用layout_gravity
替换重力答案 1 :(得分:0)
我可以在您的代码中看到的问题是:
MATCH (u:user)-[:HAS_RESOURCE*]-(u2:user)
RETURN u, COLLECT(DISTINCT u2) AS otherUsers;
您正在为textview使用“itemSecondaryText”样式,但在styles.xml中没有任何名为“itemSecondaryText”的样式。你的style.xml中有“itemHeadingText_Medium”和“itemHeadingText_Large”,但没有名为“itemSecondaryText”的项目。
我想这是问题所在,否则一切看起来都不错。