我可以在Android布局xml文件中定义中间行的文本

Adh*_*ham 13 android text

如何在Android布局xml文件中定义中间(删除线)文本?

Anu*_*san 24

要通过,您可以使用背景图像来创建删除线效果:

 android:background="@drawable/strike_through"
Run Code Online (Sandbox Code Playgroud)

strike_through drawable是一个9补丁图像,在中间保持一条线.这是实现它的最简单方法.

或者你可以这样编程.

TextView t = (TextView) findViewById(R.id.text);
t.setText("Text here");
t.setPaintFlags(t.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
Run Code Online (Sandbox Code Playgroud)


小智 12

如果你定义了一个 BindingAdapter

@BindingAdapter("strikeThrough")
public static void strikeThrough(TextView textView, Boolean strikeThrough) {
    if (strikeThrough) {
        textView.setPaintFlags(textView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
    } else {
        textView.setPaintFlags(textView.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
    }
}
Run Code Online (Sandbox Code Playgroud)

只是

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    app:strikeThrough="@{true}"
    .../>
Run Code Online (Sandbox Code Playgroud)

在 XML 布局文件中。


小智 7

6种惊人的方式-Android TextView删除线XML和Kotlin / Java示例

Android TextView删除线XML

屏幕截图-Android TextView删除线XML和Kotlin / java示例-

  1. 使用罢工元素。

    strings.xml

<string name="strike_text">1. <strike>StrikeThrough</strike> Using strike</string>

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/strike_text"
/>    
Run Code Online (Sandbox Code Playgroud)
  1. 使用STRIKE_THRU_TEXT_FLAG

    科特林

    textview2.paintFlags = textview2.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
    textview2.text = "2. StrikeThrough Using Paint Flags
    
    Run Code Online (Sandbox Code Playgroud)

    爪哇

    textview2.setPaintFlags(textview2.getPaintFlags()| Paint.STRIKE_THRU_TEXT_FLAG); textview2.setText("2. StrikeThrough Using Paint Flags");

  2. 使用SpannableString

科特林

val content1 = "3.1 StrikeThrough Using SpannableString" val spannableString1 = SpannableString(content1) spannableString1.setSpan(StrikethroughSpan(),0,content1.length,0) textview31.text = spannableString1

爪哇

textview2.setPaintFlags(textview2.getPaintFlags()| Paint.STRIKE_THRU_TEXT_FLAG);
    textview2.setText("2. StrikeThrough Using Paint Flags");    `
Run Code Online (Sandbox Code Playgroud)


Jiy*_*yeh 6

要仅在 xml 文件中执行此操作,这就是我所做的:

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/text_view_original_cash_amount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:textColor="@android:color/darker_gray"
        android:text="$36000"/>

    <View
        android:layout_width="wrap_content"
        android:layout_height="1dp"
        android:background="@android:color/darker_gray"
        android:layout_centerVertical="true"
        android:layout_alignStart="@id/text_view_original_cash_amount"
        android:layout_alignEnd="@id/text_view_original_cash_amount"/>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!