更改Android:layout_height and android:styles.xml中的重力



我是Android开发的新手,我偶然发现了一个我无法在现有 stackoverflow 问题的问题上解决的问题。

在自定义项目列表中,我正在加载A textView 对象,该对象可以使用2种不同的样式(均在 styles.xml 中定义( - 如果有次级 textView 对象,应用的样式为 itemheadingtext_medium ,如果不是,则是 itemheadingtext_large 。我正在更改 listitemadapter class的样式编程。

<!-- 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 and 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((。高度和添加Android:Gravity属性 textView xml定义 - 之后,设法通过编程更改高度来实现我想要的目标。两种样式中的所有文本都可以在其 textview

中垂直居中

尽管如此,我关于如何在 styles.xml 中做到这一点的问题仍然开放!

Android:Gravity将指定文本在文本视图中的布局,如果视图大于文本

android:layout_gravity将指定如何在视图组中布置视图本身。

我会尝试用layout_gravity

替换重力

我在您的代码中可以看到的问题是:

 <TextView
        android:id="@+id/secondary"
        style="@style/itemSecondaryText" // Look at this line
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_red_light"/>

您正在为文本视图使用" itemparyTaryText"样式,但是在您的styles.xml中,没有任何名为" itemecondaryText"的样式。您的style.xml中有" itemheadingtext_medium"one_answers" itemheadingtext_large",但没有名为" itemecondaryText"的项目。

我想这是问题,否则一切看起来都不错。

最新更新