首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android的焦点(Focus)有关问题

2012-08-30 
Android的焦点(Focus)问题今天解决了一个Android平台下的焦点问题。发现其中关键问题的所在是Android的touc

Android的焦点(Focus)问题

今天解决了一个Android平台下的焦点问题。发现其中关键问题的所在是Android的touchMode。从JavaSwing平台过来的人,都会关注setFocusable()和requestFocus()方法,但是在Android的View中还有另外的两个个方法,setFocusableInTouchMode()和requestFocusFromTouch()方法。这个两个方法就是解决Android上的焦点获取问题的关键。

同时在View类中,还有一个isInTouchMode(),可以帮助我们在监听Focuse事件时判断是否执行click(). 代码如下:

?

?

??? ImageButton.OnFocusChangeListener mFocusChangeListener = new ImageButton.OnFocusChangeListener(){
???????
??????? public void onFocusChange(View v, boolean hasFocus) {
??????????? Log.d("FocuseChange", "Focuse has changed.");
????????????? if (hasFocus) {

?????????????????????? // 如果是touchmode就执行click,否则就会只是选中。
????????????????? v.setBackgroundDrawable(getResources().getDrawable(R.drawable.));

????????????????? if (v.isInTouchMode()){

????????????????????? ((ImageButton)v).performClick();
????????????????? }
????????????? } else {
????????????????? v.setBackgroundDrawable(getResources().getDrawable(R.));
????????????????? v.getBackground().setAlpha(100);
????????????? }
???????????
??????? }
??? };

?

?

热点排行