我有一個Android應用程序,它通過AppCompat
向後兼容使用Material設計主題。全部自定義樣式在應用程序中編輯文本
在我的應用程序中有多個Textview's
和EditText's
。我希望在整個應用程序中將相同的屬性應用於所有這些TextView's
和EditText's
。爲了實現這一點,我已經定義了一個自定義樣式,如下圖所示:
<!-- Base application theme. -->
<style name="ParentTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="ArabicTheme" parent="ParentTheme">
<item name="android:editTextStyle">@style/arabicEditText</item>
<item name="android:textViewStyle">@style/arabicTextView</item>
</style>
<style name="arabicEditText" parent="@android:style/Widget.EditText">
<item name="android:gravity">right</item>
<item name="android:ellipsize">end</item>
</style>
<style name="arabicTextView" parent="@android:style/Widget.TextView">
<item name="android:gravity">right</item>
</style>
在<Application>
標籤下我AndroidManifest.xml
文件,我已經設置android:theme="@style/ArabicTheme"
。
如在上述輸出看出,樣式被應用到僅TextView
。但是,EditText
不適用。
櫃面,如果我明確地在相應的Actitivy的XML指定這些屬性到的EditText,如下所示:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="Name"
android:ellipsize="end"
android:gravity="right"
android:ems="10"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="16dp"
android:id="@+id/editText" />
即我已經明確添加android:ellipsize="end"
和android:gravity="right"
到<EditText>
,才把輸出是作爲預計:
就像我說的,我有多個TextView的年代和EditText上的,我不能這些屬性明確添加到所有其中。那麼,有什麼方法可以使用樣式或其他方法來實現這一點?我在這裏做錯了什麼?
您可以使用java代碼編輯文字樣式類似於(普通,粗體,普通)字體 –
@GowthamanM:即使在這種情況下,我需要爲我的應用程序中的所有編輯文本明確執行此操作。我正在尋找的解決方案是,將其設置一次,並且必須對應用中的所有EditText應用相同的屬性。 – Zax