【问题标题】:textview underline not showing on real devicetextview下划线未在真实设备上显示
【发布时间】:2018-07-08 02:15:42
【问题描述】:

我正在使用使用以下字符串的 TextView: android:text="@string/menu"

字符串在strings.xml文件中定义为<string name="menu"><u>MENU</u></string>

但是,下划线仅在虚拟设备中显示,而在预览中不显示,更重要的是,在真实设备中不显示。 有什么问题?

【问题讨论】:

  • 有点晚了,但在我的情况下,从我的 TextView 中删除 android:textAllCaps="true" 解决了这个问题。

标签: android textview underline


【解决方案1】:

您可以使用 SpannableString 类中的 UnderlineSpan 为文本添加下划线:

SpannableString content = new SpannableString(<your text>);
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);

那就用textView.setText(content);

您需要使用Html.fromHtml() 在您的 XML 字符串中使用 HTML。在你的布局 XML 中简单地引用一个带有 HTML 的字符串在 JVM 中是行不通的。

SDK

myTextView.setText(Html.fromHtml("<h2>Title</h2><br><p>Description here</p>"));

SDK >= 安卓牛轧糖:

 myTextView.setText(Html.fromHtml("<h2>Title</h2><br><p>Description here</p>", Html.FROM_HTML_MODE_COMPACT));

要区分 Android 版本,请使用 Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.N

【讨论】:

  • 问题依然存在。应用在真机上运行时,文字下方不显示下划线
【解决方案2】:

或者直接使用这个

textview.setPaintFlags(textview.getPaintFlags() |   Paint.UNDERLINE_TEXT_FLAG);

【讨论】:

  • 这在虚拟设备上有效,但在我真正的android手机上无效(与虚拟设备相同)。
  • 你的手机型号是什么?
  • 像素(第一代)
  • 您是否重新安装了您的应用程序,重置了您的 android studio。有时它不能正确更新 apk。
【解决方案3】:

我遇到了类似的问题:在某些设备上,下划线就像一种魅力,但在其他设备(诺基亚 10、阿尔卡特)上却没有可见的下划线。无论是否使用 Spannables、Paintflags、Html。我想这与提供程序的硬件或 Android 版本有关 - 不管怎样,我需要一个解决方案,我想出了以下内容:

我在实际文本下使用了一个非常薄的视图,它只是呈现一条白线。我将其可见性设置为 VIEW.Visible 或 VIEW.Gone 以便下划线或删除下划线。为了使该视图靠近文本,我使用了约束布局并将其约束到视图的底部、左侧和右侧。 (但也许线性布局也可以,对我来说,Contraint 布局很灵活,我喜欢这一点。)

 <androidx.constraintlayout.widget.ConstraintLayout          
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/actual_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
            <View
                android:id="@+id/underline_hack"
                android:background="#ffffff"
                app:layout_constraintTop_toBottomOf="@id/actual_text"
                app:layout_constraintStart_toStartOf="@id/actual_text"
                app:layout_constraintEnd_toEndOf="@id/actual_text"
                android:layout_width = "0dp"
                android:layout_height="1.5dp"
                android:layout_marginTop="2.5dp"
                android:visibility="gone"/>
   </androidx.constraintlayout.widget.ConstraintLayout>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-25
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    相关资源
    最近更新 更多