我正在使用setBackgroundResource(R.drawable.myXmlFile),当我在api 21及以上版本中运行应用程序时一切正常但是当我在api 16-19中运行应用程序时,它显示了不同的smth。 在我的焦点上的editText中,我正在尝试更改下划线颜色,对于下划线,我使用了自定义xml文件:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="1dp"
android:left="-3dp"
android:right="-3dp"
android:top="-3dp">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:thickness="0dp"
android:shape="rectangle">
<stroke android:width="1.2dp"
android:color="#c6c6c6"/>
<solid android:color="@color/transparent" />
</shape>
</item>
这是正常的底线所以不关注editText它看起来好像在图片中:
但是在editText获得焦点后,我有另一个相同的xml,但是使用白色底线颜色,并且在setOnFocusChangeListener()方法中我使用:
this.email.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus)
{
if (getActivity().findViewById(R.id.error_email) == null)
{
if (hasFocus)
{
email.setBackgroundResource(R.drawable.border_bottom_highlighted);
}
else
{
email.setBackgroundResource(R.drawable.border_bottom);
}
}
}
});
我得到了这个结果:
两个州之间的比较:
和xml中的editText:
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@id/email_input"
android:hint="Email-i juaj"
android:textColorHint="@color/fontColor"
android:textSize="@dimen/font_size"
android:textColor="@color/fontColor"
android:paddingTop="@dimen/vertical_padding"
android:paddingBottom="@dimen/input_bottom_padding"
android:background="@drawable/border_bottom"
android:singleLine="true"
android:layout_marginTop="@dimen/logo_login_bottom_margin"
android:inputType="textEmailAddress"
android:imeOptions="actionDone"/>
任何人都可以帮我解决这个问题吗?提前谢谢。
答案 0 :(得分:0)
int version = Build.VERSION.SDK_INT;
尝试获取api版本并设置if循环
if (version >= 16 && version <= 19) {
setContentView(R.layout.main);
}
else
{
setContentView(R.layout.main);
}