Androidユーザーからのメールを受け取る画面です。以下はコードのスニペットです。テキストの下に表示されている下線を削除したいと思います。
<com.google.Android.material.textfield.TextInputLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_margin="8dp"
Android:hint="@string/email"
Android:textColorHint="@color/blueBackground"
app:boxBackgroundColor="@color/input_background"
app:boxCornerRadiusBottomEnd="20dp"
app:boxCornerRadiusBottomStart="20dp"
app:boxCornerRadiusTopEnd="20dp"
app:boxCornerRadiusTopStart="20dp"
app:endIconMode="clear_text"
app:endIconTint="@color/blueBackground"
app:hintTextColor="@color/blueBackground">
<com.google.Android.material.textfield.TextInputEditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:textColor="@color/blueBackground"
Android:textSize="18sp"
Android:layout_margin="8dp" />
</com.google.Android.material.textfield.TextInputLayout>
私が試してみました Android:background="@null"
および
<item name="colorControlNormal">@Android:color/transparent</item> <item name="colorControlActivated">@Android:color/transparent</item>
しかし、それは機能していません。
このようなカスタムTextInputLayoutを作成します
package com.google.Android.material.textfield
import Android.content.Context
import Android.util.AttributeSet
class TextInputLayoutWithoutUnderline @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : TextInputLayout(context, attrs, defStyleAttr) {
override fun updateEditTextBackground() {
// XXX don't call super on purpose
}
}
この行をTextInputLayout
に追加するとうまくいきます:
app:boxStrokeWidth="0dp"
[〜#〜]更新[〜#〜]
Color resディレクトリ内にet_box_color.xmlファイルを追加し、その中に以下の行を追加します。
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item Android:color="@color/transparent"
Android:state_pressed="true"
Android:state_focused="true"
Android:state_selected="true"
Android:state_checkable="true"
Android:state_checked="true"
Android:state_enabled="true"
Android:state_window_focused="true"/>
</selector>
次に、以下のようなマテリアル編集テキストを追加します。
<com.google.Android.material.textfield.TextInputLayout
Android:id="@+id/textInputLayout"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/border"
app:boxStrokeColor="@color/et_box_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/llBank">
<com.google.Android.material.textfield.TextInputEditText
Android:id="@+id/etAmount"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginBottom="1dp"
Android:background="#00FFFFFF"
Android:gravity="center"
Android:hint="Amount"
Android:imeOptions="actionDone"
Android:inputType="numberDecimal" />
</com.google.Android.material.textfield.TextInputLayout>
TextInputLayoutの境界線を作成するために背景を追加しました。必要がない場合は、TextInputLayoutの背景を削除してください。 TextInputEditTextの背景は、背景を透明にするために必要になります。
TextInputLayoutの背景をドローアブルに設定し、TextInputEditTextの背景を透明に設定すると、下線が削除されます。
<com.google.Android.material.textfield.TextInputLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_margin="8dp"
Android:hint="@string/email"
Android:background="@drawable/blue_drawable"
app:endIconMode="clear_text"
app:endIconTint="@color/black"
app:hintTextColor="@color/black">
<com.google.Android.material.textfield.TextInputEditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:textColor="@color/black"
Android:background="@Android:color/transparent"
Android:textSize="18sp"
Android:layout_margin="8dp" />
</com.google.Android.material.textfield.TextInputLayout>
blue_drawable.xml
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<corners Android:radius="20dp"/>
<solid Android:color="@Android:color/holo_blue_bright"/></shape>
あなたがapp:boxBackgroundModeを塗りつぶし、下線なしでしたい場合はこれが機能します
<item name="boxStrokeWidthFocused">0dp</item>
<item name="boxStrokeWidth">0dp</item>
簡単な方法;
app:boxBackgroundMode="filled"
app:boxStrokeWidth="0dp"