2012-05-19 4 views
5

Я пытаюсь вставить TextView внутри EditText как в нижеinserting textview внутри edittext в android?

enter image description here

может кто-нибудь пожалуйста, дайте мне идеи о том, как реализовать это или что-то.

спасибо :)

обновление: в TextViews в EditText будет динамически изменяться.

+0

Это не похоже на простой текст внутри edittext. Его вид PopupWindow – Ronnie

ответ

2

Я думаю, что вы не можете установить TextView внутри EditText. Но в качестве альтернативы вы можете сделать так, чтобы он выглядел так. Вот шаги

  1. новообращенный TextView в BitmapDrawable
  2. преобразования растровых Drawable в SpanableString (ImageSpan)
  3. затем установить это возвращается SpannableString к вашему EditText

Я недавно закончил этот вид ш и я объяснил в своем блоге Making GoSmsPro/Evernote like EditText

+0

Я использую ваш код в одном своем проекте, но у меня возникают проблемы и не получаю никакого решения. Можете ли вы взглянуть на него, дайте мне немного подсказки http://stackoverflow.com/questions/20780685/how -set рентабельность-между-spannable-TextView –

3

Попробуйте этот образец кода. Это соответствует вашим требованиям.

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); 

Для взглядов внутри EditText части, вы должны будете продлить EditText. Обзор того, как он должен выглядеть, выглядит следующим образом.

class emailEditText extends EditText { 

List<NamePhotoView> ViewlistOfSelectedContacts; // create new 

    void addContact(String name, Bitmap photo) { 
     // create a new 'NamePhotoView' and add to the ViewlistOfSelectedContacts 
    } 

    @Override 
    void onDraw(Canvas canvas) { 
     for (....) { 
      // draw all views from the list. left to right. 
     } 
    // you have to some how offset the text start coordinate. then call super 
    super.onDraw(canvas); 
    } 
} 
+0

приведенный выше код подходит для всплывающего окна. но что я могу сделать, чтобы получить эти тексты «kanna» и «susse» в редакторе «To» ?? – kAnNaN

+0

Это похоже на пользовательский элемент управления Edittext. Расширьте «EdiText' .. – Ronnie

+0

Я выполнил свой ответ. – Ronnie

1

Вы можете создать компонент на основе того, что вам нужно, как вы упомянули выше, с рамкой. У вас может быть FrameLayout или RelativeLayout с двумя представлениями, такими как EditText и TextView, в то время как текстовое представление находится поверх EditText. также вы можете поместить изображение, если хотите, прямо как ваша фотография.

Хотя вам не нужно создавать компонент, и вы легко можете это сделать в своем XML-макете, если вы планируете регулярно его использовать в своем приложении, это хорошая практика для создания этих представлений в качестве компонента.

+0

если возможно, дайте мне пример или любую ссылку, на которую я могу ссылаться. – kAnNaN

+0

Вы можете обратиться: 1) http://developer.android.com/guide/topics/ui/custom-components.html 2) http://developer.android.com/resources/articles/layout-tricks-reuse .html – Hesam

+0

И Практический: http: // thiranjith.com/2011/07/15/actionbar-design-pattern-example-for-android/Хотя эта тема связана с дизайном Action bar, вы можете получить представление о том, как создать повторно используемый компонент на основе. – Hesam

2

T он способ Android реализует его, так называемый Chips UI, находится в here.
По существу это настраиваемый span, который рисует компоненты (изображение, текст и т. Д.) Над текстом, а также некоторую логику, чтобы показать всплывающее окно.