style - android textview settext




如何在EditText中隱藏下劃線 (8)

我怎樣才能隱藏EditText underbar(在底部有小襯線的提示行)?

可能有更好的方法來做我想做的事情:我有一個帶有EditText的佈局。 通常情況下,用戶可以點擊它並開始輸入或編輯文本。

然而,有時候,我想使用相同的佈局(簡化其他邏輯)以只讀方式顯示相同的數據。 我想要的演示文稿是相似的 - 它應該有相同的高度和相同的字體,但沒有底部。

作為一種權宜之計,我將通過刪除EditText和替換TextView來實現這一點。 我認為這會帶來理想的結果,但它看起來像是一個迂迴的昂貴的方式,通過改變屬性來完成應該很容易做到的事情。


使用任一屬性:

android:background="@null"

要么

android:background="@android:color/transparent"

為我工作以隱藏底線

但是,請注意,它會導致與我圍繞EditText的TextInputLayout產生間距問題


如果您的編輯文本已經有背景,那麼您可以使用以下內容。

android:textCursorDrawable="@null"

您也必須設置minWidth,否則如果文本為空,則光標將消失。

        <EditText
            android:id="@+id/et_card_view_list_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:minWidth="30dp"
            android:layout_weight="1"
            android:inputType="text"
            android:text="Name"
            android:background="@android:color/transparent"
            />

您可以使用setBackgroundResource編程方式執行此操作:

editText.setBackgroundResource(android.R.color.transparent);

您還可以為editText定義STYLE,以便重新組合所有屬性。 如果您需要多次編輯需要具有該行為的文本,它非常強大

將代碼放在res / values / styles.xml中

<style name="MyEditTextStyle" parent="@android:style/TextAppearance.Widget.EditText">
    <item name="android:background">@color/transparence</item> //NO UNDERBAR
    <item name="android:maxLines">1</item>
    <item name="android:height">28dp</item> //COMMON HEIGHT
</style>

之後你只需要在editText中調用它

                   <EditText
                    android:id="@+id/edit1"
                    style="@style/MyEditTextStyle"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />
                   <EditText
                    android:id="@+id/edit2"
                    style="@style/MyEditTextStyle"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />

我所做的就是創建一個Shape drawable並將其設置為背景:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <padding
        android:top="8dp"
        android:bottom="8dp"
        android:left="8dp"
        android:right="8dp" />

    <solid android:color="#fff" />

</shape>

注意:我實際上使用了@dimen@color值,但為了清晰起見,我在這裡簡化了形狀文件。


請將您的edittext背景設置為

android:background="#00000000"

它會工作。


這是一種隱藏它的方法,不會破壞默認的填充:

fun View.setViewBackgroundWithoutResettingPadding(background: Drawable?) {
    val paddingBottom = this.paddingBottom
    val paddingStart = ViewCompat.getPaddingStart(this)
    val paddingEnd = ViewCompat.getPaddingEnd(this)
    val paddingTop = this.paddingTop
    ViewCompat.setBackground(this, background)
    ViewCompat.setPaddingRelative(this, paddingStart, paddingTop, paddingEnd, paddingBottom)
}

用法:

editText.setViewBackgroundWithoutResettingPadding(null)




android-edittext