2017-06-23 33 views
2

我是新來的android開發人員,我偶然發現了一個問題,我無法通過現有的StackOverflow問題解決問題。在styles.xml中更改android:layout_height和android:gravity

在自定義的項目我加載一個TextView的對象,它可以使用2個不同風格(在styles.xml被定義)的名單 - 如果有一個二次TextView的對象,應用該樣式是itemHeadingText_Medium,如果不是,則爲itemHeadingText_Large。我正在改變ListItemAdapter類中的stylematicaly。

<!-- 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安卓重力不應用於視圖,以及整個應用程序看起來像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存有標題。

編輯:2017年6月25日

我設法實現我想要的東西,通過改變編程方式使用getLayoutParams()高度高度和增加了android:重力屬性的TextView的 XML定義 - 畢竟在這兩種樣式文本可以垂直居中在其TextView

儘管如此,我的問題,如何在styles.xml仍然開放!

+0

您可以發佈此佈局的完整XML文件代碼嗎? –

+0

@ZohaibHassan當然,這裏是:https://pastebin.com/y8nA2tbh –

+0

我會檢查你的代碼,並儘快給你回覆。 –

回答

0

安卓重力將指定文本如何TextView的內擺出來,如果View是比文本

安卓較大:layout_gravity將指定如何查看自己應在其ViewGroup中進行佈局。

我會嘗試用layout_gravity更換重力

+0

使用layout_gravity時不可見變化。我在這裏使用重力,因爲我最初的想法是讓TextView變大,然後將文本置於其中。 –

0

,我可以在你的代碼中看到的問題是:

<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"/> 

您正在使用您的TextView「itemSecondaryText」的風格,但在你的styles.xml沒有任何名爲「itemSecondaryText」的樣式。您在style.xml中有「itemHeadingText_Medium」和「itemHeadingText_Large」,但沒有名爲「itemSecondaryText」的項目。

我想這是問題,否則一切看起來不錯。

+0

這是另一個TextView,用於輔助文本(我提供的screeshot中的「​​Ipsum Ipsum Lorem Ipsum」),它的工作完美。就像我說的,我只是以編程方式改變第一個TextView的樣式。所以這不是問題。 –

+0

TextView正在更改的樣式是使用「標題」ID。 –

相關問題