2011-08-22 10 views
0

이 특이한 문제가 있습니다. 저는 기본 Android 스타일을 사용하여 TextView의 스타일을 지정하고 있으며, 하나의 솔기를 제외한 모든 솔기는 완벽하게 작동합니다.주제별 TextView 모양이 항상 작동하지 않는 경우

모양은 ?android:attr/textAppearanceSmall이며 레이아웃 XML 디자이너에서 글꼴을 변경하고 HoloHolo.Light (Android 3.0 이상) 사이에서 테마를 변경합니다.

그러나 하나의 특정 TextView은 태블릿에서 실행 중일 때 스타일이 적용되지 않으며 다른 사람들과 똑같은 XML 코드를 사용합니다.

다음은 작동하지 않습니다 TextView 내 XML 코드입니다 :

<TextView android:id="@+id/textView1" 
    android:text="TextView" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_width="match_parent" 
    android:layout_marginTop="2sp" 
    android:lines="2" 
    android:gravity="top|center" 
    android:textAppearance="?android:attr/textAppearanceSmall"> 
</TextView> 

나는 또한 다음과 같은 방법을 사용하여 코드에서 그 일을 시도했습니다,하지만 그 중 하나가 작동하지 않습니다

setTextAppearance(this, android.R.attr.textAppearanceSmall); 

아이디어가 있으십니까?

답변

2

먼저, 스타일을 추가 할 때 (XML을 사용하여) 같은 스타일을 사용하는 View 구성 요소가 있다면 그 부분을 creating Styles이라는 매우 깔끔한 방법으로 지적하고 싶습니다.

그래서 당신의 스타일은 다음과 같습니다

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <!-- The Style for all the TextViews --> 
    <style name="TextViewStyle"> 
     <item name="android:layout_height">wrap_content</item> 
     <item name="android:layout_alignParentBottom">true</item> 
     <item name="android:layout_alignParentLeft">true</item> 
     <item name="android:layout_width=">match_parent</item> 
     <item name="android:layout_marginTop">2sp</item> 
     <item name="android:lines">2</item> 
     <item name="android:gravity">top|center</item> 
     <item name="android:textAppearance">?android:attr/textAppearanceSmall</item> 
    </style> 

</resources> 

당신의 레이아웃은 다음과 같습니다 동안 :

<TextView android:id="@+id/textView1" 
    android:text="TextView" 
    style="@style/TextViewStyle" 
/> 

<TextView android:id="@+id/textView2" 
    android:text="Another TextView" 
    style="@style/TextViewStyle" 
/> 

<!-- .... --> 

이 훨씬 더 유지 보수 코드를 만들고 방지 오타를하는 데 도움이됩니다.


마지막으로, 문제에 대한 비슷한 이미 here을 논의하고있다. 이렇게하면 문제를 해결하는 데 도움이 될 수도 있습니다.

+0

감사합니다. 정말 도움이되었고 문제가 해결되었습니다. 이제 setTextAppearance (this, android.R.style.TextAppearance_Small)를 대신 사용하고 있습니다. 건배! –

+1

항상 도와 드리겠습니다. D –

관련 문제