在安卓中如何在EditText内插入TextView?

5
我正在尝试像下面这样在Edittext中插入一个TextView: enter image description here 请问有什么实现方法或者相关的建议吗?
谢谢:)
更新: Edittext中的TextView将会动态变化。

那看起来不像是一个简单的TextView在EditText里面。它是一种PopupWindow类型的视图。 - Ron
4个回答

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

以上代码对于弹出框来说是可以的。但是我该怎么做才能让那些TextViews“kanna”和“susse”出现在EditText“To”中呢? - kAnNaN

2
Android实现的所谓“Chips UI”可以在这里找到。基本上,它是一个自定义的span,它会在文本上绘制组件(图像、文本等),并有一些逻辑来显示弹出窗口。

2
我认为你不能在EditText内部设置TextView,但是你可以采用替代方案使其看起来像。以下是步骤:
  1. TextView转换为BitmapDrawable
  2. 将位图可绘制对象转换为SpannableStringImageSpan
  3. 然后将返回的SpannableString设置给你的EditText
我最近完成了这种类型的UI,并在我的博客中解释了如何实现:Making GoSmsPro/Evernote like EditText

我在我的一个项目中使用了你的代码,但是遇到了一些问题,没有找到任何解决方案...你能看一下并给我一些提示吗?https://dev59.com/0nrZa4cB1Zd3GeqP46OV - Sandip Armal Patil

1

您可以根据您所需的内容创建一个基于组件的组件,就像您上面提到的帧布局一样。您可能有一个FrameLayout或RelativeLayout,其中包含两个视图,例如EditText和TextView,而TextView位于EditText之上。如果您想要在右侧放置ImageView,则也可以这样做。

虽然您不需要创建组件,而且可以轻松地在XML布局中完成此操作,但如果您计划通过应用程序定期使用它,则最好将这些视图作为组件创建。


如果可能的话,您能给我一个示例或任何链接供我参考吗? - kAnNaN
您可以参考以下内容:1)http://developer.android.com/guide/topics/ui/custom-components.html 2)http://developer.android.com/resources/articles/layout-tricks-reuse.html - Hesam
实用的例子:http://thiranjith.com/2011/07/15/actionbar-design-pattern-example-for-android/ 虽然这个主题与操作栏设计有关,但您可以了解如何创建基于可重用组件的内容。 - Hesam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接