嗨,我在 GridLayout
中有几个 EditText
框。但是,EditText
的代码完全相同。但它们看起来不同 onFocus
事件。知道为什么会发生这种情况吗?
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:alignmentMode="alignBounds"
android:columnCount="3"
android:columnOrderPreserved="false"
android:useDefaultMargins="true">
<TextView
android:id="@+id/tvDisinfectionContact"
style="@style/formsubsubheader"
android:layout_width="250dp"
android:layout_columnSpan="3"
android:layout_gravity="fill_horizontal"
android:paddingTop="10dp"
android:text="@string/disinfection_contact" />
<TextView
android:layout_width="300dp"
android:layout_columnSpan="1"
android:gravity="start"
android:visibility="gone" />
<TextView
android:id="@+id/tvPpmUnit"
style="@style/fieldlabel"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_columnSpan="1"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:text="@string/unit_ppm" />
<TextView
android:id="@+id/tvMinutesUnits"
style="@style/fieldlabel"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_columnSpan="1"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:text="@string/unit_mins" />
<TextView
android:id="@+id/tvLvlCheAdd"
style="@style/fieldlabel"
android:layout_width="250dp"
android:layout_columnSpan="1"
android:gravity="start"
android:labelFor="@+id/etLvlCheAddPpm"
android:paddingTop="12dp"
android:text="@string/lvl_cheaddition" />
<EditText
android:id="@+id/etLvlCheAddPpm"
android:width="100dp"
android:layout_columnSpan="1"
android:layout_gravity="center_horizontal"
android:ems="16"
android:gravity="center_horizontal"
android:inputType="numberDecimal"
android:maxLength="50"/>
<EditText
android:id="@+id/etLvlCheAddMinutes"
android:layout_columnSpan="1"
android:layout_gravity="center_horizontal"
android:width="100dp"
android:ems="16"
android:gravity="center_horizontal"
android:inputType="numberDecimal"
android:maxLength="50" />
<TextView
android:id="@+id/tvLvlFlushADD"
style="@style/fieldlabel"
android:layout_width="250dp"
android:layout_columnSpan="1"
android:gravity="start"
android:labelFor="@+id/etLvlFlushAddPpm"
android:paddingTop="12dp"
android:text="@string/lvl_flushddition" />
<EditText
android:id="@+id/etLvlFlushAddPpm"
android:width="100dp"
android:layout_columnSpan="1"
android:layout_gravity="center_horizontal"
android:ems="16"
android:gravity="center_horizontal"
android:inputType="numberDecimal"
android:maxLength="50" />
<EditText
android:id="@+id/etLvlFlushMinutes"
android:layout_columnSpan="1"
android:layout_gravity="center_horizontal"
android:width="100dp"
android:ems="16"
android:gravity="center_horizontal"
android:inputType="numberDecimal"
android:maxLength="50" />
</GridLayout>
最佳答案
在 Android O 上有一些 Input and Navigation Changes 。在不同的 Android 版本上,您不会看到 View
中的变化。您可以检查您的应用是否在 O 上运行,如果是,请在 EditText
View 上调用 setDefaultFocusHighlightEnabled(false)
。
这设置此View
在获得焦点但未在其背景中定义R.attr.state_focused
时是否应使用默认焦点突出显示。
关于java - EditText 框在 Focus 事件上看起来不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56832782/