2014-10-17 2 views
0

Я пытаюсь найти лучший способ сопоставить размер текста метки рядом с EditText с помощью xml. я предпочел бы не наследовать стиль EditText непосредственно, так как это принесет в кучу атрибутов я не заинтересован.Ссылка на конкретный атрибут в другом стиле

<EditText 
    android:id="@+id/editQuantity" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

<TextView 
    android:id="@+id/textUnit" 
    style="@style/FontMatchingEditText" 
    android:text="units" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

Есть ли какой-нибудь способ, чтобы обратиться к определенному атрибуту в другом стиле?

В противном случае, было бы более разумно сделать мой собственный стиль для EditText, чтобы убедиться, что он остается совместимым с меткой?

Редактировать

Я надеялся, что там может быть темой независимый способ сделать это, семантически что-то вроде этого:

<item name="android:textSize">@android:style/Widget.EditText.textAppearance.textSize</item> 

Но я, наверное, усложнять его. Спасибо!

ответ

0

Предполагая, что ваша родительская тема android:Theme.Holo.Light.

От \android-sdk\platforms\android-X\data\res\values\themes.xml:

<style name="Theme.Holo.Light" parent="Theme.Light"> 
    ... 
    <!-- Widget styles --> 
    <item name="editTextStyle">@android:style/Widget.Holo.EditText</item> 

От \android-sdk\platforms\android-X\data\res\values\styles.xml:

<style name="Widget.Holo.EditText" parent="Widget.EditText"> 
</style> 

<style name="Widget.EditText"> 
    ... 
    <item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item> 
    <item name="android:textColor">?android:attr/editTextColor</item> 
</style> 

Теперь вы можете просто повторно использовать тему атрибутов, используемых для EditText для TextView:

<TextView 
    android:id="@+id/textUnit" 
    android:textColor="?android:attr/editTextColor" 
    android:textAppearance="?android:attr/textAppearanceMediumInverse" 
    android:text="units" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
Смежные вопросы