【问题标题】:inserting textview inside edittext in android?在android的edittext中插入textview?
【发布时间】:2012-05-19 10:32:29
【问题描述】:

我正在尝试在 Edittext 中插入一个 textview,如下所示

谁能给我一些关于如何实现它的想法。

谢谢:)

更新: 编辑文本中的文本视图会动态变化。

【问题讨论】:

  • 这看起来不像是编辑文本中的简单文本视图。它是一种PopupWindow 视图

标签: android textview android-edittext android-custom-view


【解决方案1】:

试试这个示例代码。它符合您的要求。

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

【讨论】:

  • 上面的代码对于弹出框是可以的。但是我该怎么做才能在edittext“To”中获得那些textviews“kanna”和“susse”??
【解决方案2】:

我认为你不能在EditText 中设置TextView。 但或者你可以让它看起来那样。以下是步骤

  1. 将文本视图转换为BitmapDrawable
  2. 将可绘制的位图转换为SpanableString (ImageSpan)
  3. 然后将返回的SpannableString 设置为您的EditText

我最近完成了这种ui,在我的博客Making GoSmsPro/Evernote like EditText中有解释

【讨论】:

【解决方案3】:

Android 实现它的方式,即所谓的Chips UI,可以在here 找到。
本质上它是一个自定义的span,它在文本上绘制组件(图像、文本等),加上一些逻辑来显示弹出窗口。

【讨论】:

    【解决方案4】:

    您可以像上面提到的框架布局一样根据您的需要创建一个组件。当文本视图位于 EditText 之上时,您可能有一个带有两个视图的 FrameLayout 或 RelativeLayout,例如 EditText 和 TextView。如果你想像你的图片一样,你也可以把图像视图放在右边。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-03
    • 2020-08-12
    • 2017-05-04
    • 2013-11-23
    • 2013-03-10
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多