Ich habe eine Android-Anwendung, die Material Design-Thema mit Abwärtskompatibilität durch AppCompat
verwendet.Custom style für alle Texte bearbeiten in der Anwendung
Es gibt mehrere Textview's
und EditText's
in meiner Anwendung. Ich möchte die gleichen Eigenschaften auf alle diese TextView's
und EditText's
über die Anwendung angewendet werden. Um dies zu erreichen, habe ich einen benutzerdefinierten Stil definiert wie folgt:
<!-- 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>
unter dem <Application>
Tag in meinem AndroidManifest.xml
Datei, ich habe android:theme="@style/ArabicTheme"
gesetzt.
Unten ist der Ausgang der Aktivität:
Wie in der obigen Ausgabe zu sehen ist, ist der Stil nur TextView
angewandt wird. Dasselbe gilt jedoch nicht für EditText
.
Incase, wenn ich ausdrücklich diese Eigenschaften zum EditText in der entsprechenden Actitivy XML angeben, wie unten dargestellt:
<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" />
dh ich ausdrücklich android:ellipsize="end"
und android:gravity="right"
zum <EditText>
hinzugefügt haben, und erst dann die Ausgabe als erwartet:
Wie ich schon sagte, ich habe mehrere Textview ist und EditText ist und ich diese Eigenschaften alle nicht explizit hinzufügen von ihnen. Also, gibt es eine Möglichkeit, dies mit Styles oder einem anderen Ansatz zu erreichen? Mache ich hier etwas falsch?
Sie können bearbeiten Text Stil mit Java-Code Schriftart wie (normal, fett, normal) –
@ GowthamanM: Auch in diesem Fall muss ich dies explizit für alle Texte bearbeiten in meiner Anwendung. Die Lösung, nach der ich suche, ist, sie einmal zu setzen, und die gleiche Eigenschaft muss für alle EditTexte in der App angewendet werden. – Zax