所谓View(比如Button、TextView、或者ViewGroup等)的多态,即包括常态、聚焦态、按下态、以及不可用状态。这个东西,可以通过设置View的android:background="@drawable/xx_selector.xml"方式解决。
已一个Button为例,相关代码片段如下:
1、按钮的layout片段
android:id="@+id/navigationBarTxtBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textColor="@color/widget_nb_txtbtn_color"
android:background="@drawable/btn_selector" >
2、在drawable目录新增btn_selector.xml<?xml version="1.0" encoding="utf-8"?>
其实是对每一个状态单独设置背景图片,重点关注 android:drawable="@drawable/...."
3、还得注意一点,必须给View绑定相应的事件,这个selector才会生效,目前发现好像是这样子的,没有特别验证过,比如这个按下状态要生效,必须得在代码中这样:btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
switch (view.getId()) {
// 返回按钮被点击
case R.id.navigationBarGoBack:
mCurrentActivity.finish();
break;
case R.id.navigationBarHome:
MainTabActivity.jumpToStartPage(mCurrentActivity);
break;
}
}
});
不是什么稀奇的东西,只是觉得和以前CSS完全不一样,所以Mark一下!