2012-05-19 16 views
5

Ich versuche, in unten als eine Textview in einem EditText einfügenEinfügen von Textansicht in Edittext in Android?

enter image description here

können pls jemand mir Gedanken darüber, wie es oder etwas zu implementieren.

Dank :)

Update: die Textviews im EditText dynamisch variieren.

+0

Das sieht nicht wie ein simpletextview innerhalb eines Editiertext .. Es ist eine "PopupWindow" Art der Ansicht – Ronnie

Antwort

2

Ich denke, Sie können TextView innerhalb EditText nicht festlegen. Aber alternativ können Sie es so aussehen lassen. Hier sind die Schritte

  1. convert Textview zu BitmapDrawable
  2. konvertieren Bitmap ziehbar in SpanableString (ImageSpan)
  3. dann setzen Sie diese wieder SpannableString auf Ihre EditText

Ich habe vor kurzem diese Art von ui abgeschlossen und ich habe in meinem Blog Making GoSmsPro/Evernote like EditText

+0

Ich benutze Ihren Code in einem meiner mein Projekt, aber ich bekomme ein Problem und keine Lösung zu bekommen .... können Sie einen Blick darauf werfen geben Sie mir einen Hinweis http://StackOverflow.com/Questions/20780685/how -set-margin-between-spannable-textview –

3

Versuchen Sie diesen Beispielcode. Es entspricht Ihrer Anforderung.

PopupWindow pw = new PopupWindow(
           this.getViewInflate().inflate(R.layout.pw_layout, 
                   null, true, null), 
           100,100,true); 
// display the popup in the center 
pw.showAtLocation(layout, Gravity.CENTER, 0, 0); 
pw.update(20,20,100,100); 

Für die Ansichten innerhalb EditText Teil, werden Sie die EditText verlängern müssen. Überblick darüber, wie es aussehen sollte, ist wie folgt.

+0

der obige Code ist ok für das Popup-Fenster. aber was kann ich tun, um diese textviews "kanna" und "susse" im edittext "To" zu bekommen ?? – kAnNaN

+0

Das sieht aus wie ein benutzerdefiniertes EditText-Steuerelement .. Erweitern Sie die 'EdiText' .. – Ronnie

+0

Ich udated meine Antwort. – Ronnie

1

Sie können eine Komponente basierend auf was Sie benötigen wie Sie oben mit Rahmen-Layout erwähnt erstellen. Sie können ein FrameLayout oder RelativeLayout mit zwei Ansichten wie EditText und TextView haben, während sich die Textansicht oberhalb von EditText befindet. Sie können auch Bildansicht, wenn Sie möchten, wie Ihr Bild rechts.

Obwohl Sie keine Komponente erstellen müssen, können Sie dies problemlos in Ihrem XML-Layout durchführen. Wenn Sie planen, es regelmäßig über Ihre Anwendung zu verwenden, sollten Sie diese Ansichten als Komponente erstellen.

+0

Wenn möglich, können Sie mir ein Beispiel oder einen Link geben, auf den ich mich beziehen kann. – kAnNaN

+0

Sie können beziehen sich auf: 1) http://developer.android.com/guide/topics/ui/custom-components.html 2) http://developer.android.com/resources/articles/layout-tricks-reuse .html – Hesam

+0

Und Praktisches: http: // thiranjith.com/2011/07/15/actionbar-design-pattern-example-for-android/Obwohl dieses Thema mit dem Design von Aktionsleisten zu tun hat, können Sie sich eine Vorstellung davon machen, wie Sie eine wiederverwendbare Komponente erstellen können. – Hesam

2

T erklärt Die Art und Weise, wie Android es implementiert, die so genannte Chips UI, kann here gefunden werden.
Im Wesentlichen ist es eine benutzerdefinierte span, die die Komponenten (Bild, Text, etc.) über den Text zeichnet, plus einige Logik, um das Popup anzuzeigen.