Android Indent and Canging Indent

Je suis intéressé par une série de TextViews, finalement avec un retrait suspendu. La manière standard de le faire via CSS est de définir la marge sur X pixels, puis de définir le retrait de texte sur -X pixels. De toute évidence, je peux faire le premier avec "android: layout_marginLeft =" Xdp ", mais je ne sais pas comment imposer les pixels -X sur le TextView. Des idées ou des solutions de rechange? J'apprécie toutes les suggestions.

  • Activation de début à l'aide d'une action personnalisée
  • La page Web peut-elle être au courant du clavier virtuel Android
  • Comment faire pour arrondir des nombres décimaux dans Android
  • Comment puis-je programmer "redémarrer" une application Android?
  • Eclipse avec Android SDK éléments de menu manquants
  • Android: Activity.onDestroy () n'est pas appelé lorsque Dalvik tue cette activité
  • Studio Android ne peut pas se connecter à des périphériques de débogage
  • Comment appeler une méthode après un délai dans Android
  • 100% Native C Application sur Android?
  • Cachant AppBarLayout et donnant son espace à la vue restante
  • Est-il possible de faire glisser un élément en dehors de RecyclerView?
  • Comment faire pour exécuter une action après le clic positif DialogFragment cliqué
  • One Solution collect form web for “Android Indent and Canging Indent”

    Ont découvert comment faire fonctionner des retraits suspendus pour mon propre projet. Fondamentalement, vous devez utiliser android.text.style.LeadingMarginSpan et l'appliquer à votre texte via le code. LeadingMarginSpan.Standard prend un constructeur de retrait complet (1 paramètre) ou un retrait suspendu (2 params) et vous devez créer un nouvel objet Span pour chaque sous-chaîne dans laquelle vous souhaitez appliquer le style. Le TextView lui-même devra également avoir son BufferType réglé sur SPANNABLE.

    Si vous devez le faire plusieurs fois, ou souhaitez incorporer des retraits dans votre style, essayez de créer une sous-classe de TextView qui prend un attribut de retrait personnalisé et applique automatiquement la portée. Je me suis beaucoup servi de ce tutoriel sur les vues personnalisées et les attributs XML à partir du blog This Statically Typed, et la question SO Déclarant un élément d'interface utilisateur personnalisé utilisant XML .

    Dans TextView:

     // android.text.style.CharacterStyle is a basic interface, you can try the // TextAppearanceSpan class to pull from an existing style/theme in XML CharacterStyle style_char = new TextAppearanceSpan (getContext(), styleId); float textSize = style_char.getTextSize(); // indentF roughly corresponds to ems in dp after accounting for // system/base font scaling, you'll need to tweak it float indentF = 1.0f; int indent = (int) indentF; if (textSize > 0) { indent = (int) indentF * textSize; } // android.text.style.ParagraphStyle is a basic interface, but // LeadingMarginSpan handles indents/margins // If you're API8+, there's also LeadingMarginSpan2, which lets you // specify how many lines to count as "first line hanging" ParagraphStyle style_para = new LeadingMarginSpan.Standard (indent); String unstyledSource = this.getText(); // SpannableString has mutable markup, with fixed text // SpannableStringBuilder has mutable markup and mutable text SpannableString styledSource = new SpannableString (unstyledSource); styledSource.setSpan (style_char, 0, styledSource.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); styledSource.setSpan (style_para, 0, styledSource.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); // *or* you can use Spanned.SPAN_PARAGRAPH for style_para, but check // the docs for usage this.setText (styledSource, BufferType.SPANNABLE); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.