问题描述:
在做Android apk的时候发现部分Android8.0以上的机型有以下问题,写了一个页面或者弹窗布局,布局中有RelativeLayout,其中包含EditText这种可以获取焦点的控件,UI界面第一次展示的时候正常,但是在做了网络查询或者跳转到其他页面,再返回该页面的时候发现有的带EditText的RelativeLayout被自动添加了绿色边框。
出现该问题的原因:
查看Android8.0的API变动,发现有以下变动:布局
如今,若是您没有为 View 对象(前景或背景图片)定义任何焦点状态颜色,
框架会为 View 设置默认的焦点突出显示颜色。
此焦点突出显示标志是基于操做组件主题背景的涟漪图片。c
看着这里,发现找到问题原因了,下面应该是解决方案:
若是您不但愿 View 对象在接收焦点时使用此默认突出显示标志,
请在包含 View 的布局 XML 文件中将
android:defaultFocusHighlightEnabled 属性设置为 false,
或者将 false 传递至应用界面逻辑中的 setDefaultFocusHighlightEnabled()对象
通过尝试发现这个API在低版本中没有,接着看,发现下面的描述:事件
可点击的 View 对象如今默认也能够成为焦点。若是您但愿 View 对象可点击
但不可成为焦点,请在包含 View 的布局 XML 文件中将
android:focusable 属性设置为 false,
或者将 false 传递至应用界面逻辑中的 setFocusable()。
给RelativeLayout增加属性
android:focusable="false"
通过尝试,问题解决了。