Android 焦点调试
16lz
2021-01-23
1、listview和gridview的焦点调试的时候一般会用到OnKeyListener、OnItemSelectedListener、OnFocusChangeListener这些监听器;另外也会用到
2、键盘移动listview和gridview里面的item时,可能会出现移动两次的情况,为了避免它:我们设置一个布尔型标志位flag
另外listview和gridview的setSelection(int position)方法也会起到作用,eg:
3、如果在一个groupview中加载了多个gridview,而且这些gridvie的xml源自同一个layout.xml,假设layout.xml中的gridview的id为"@+id/gridview”,那么下面代码
是错误的,多个gridview同时使用同一个id会引起混乱,为此你必须在代买中重新为gridview设置id,eg:
setNextFocusLeftId(int id) setNextFocusRightId(int id) setNextFocusUpId(int id) setNextFocusDownId(int id)这些方法(id只要在项目中存在,你就可以引用,并不局限于一个类或一个activity或一个layout.xml)。
2、键盘移动listview和gridview里面的item时,可能会出现移动两次的情况,为了避免它:我们设置一个布尔型标志位flag
private boolean flag;@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) { ... ... this.flag=true;}@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position,long id) { ... ... this.flag=false;}
另外listview和gridview的setSelection(int position)方法也会起到作用,eg:
gridView.setSelection(0); gridView.setFocusableInTouchMode(true); gridView.requestFocus();
3、如果在一个groupview中加载了多个gridview,而且这些gridvie的xml源自同一个layout.xml,假设layout.xml中的gridview的id为"@+id/gridview”,那么下面代码
gridview.setNextFocusLeftId(R.id.gridview)
是错误的,多个gridview同时使用同一个id会引起混乱,为此你必须在代买中重新为gridview设置id,eg:
gridview.setId(id);
更多相关文章
- asynchttpclient的post方法发送json格式参数和表单格式参数
- Android中button的onClick事件几种方法
- Android 关闭多个Activity的实现方法
- Android中几种延后处理事件的方法
- Android判断包名和类名是否存在的方法
- Android SDK 1.5 "--core-library" build error问题解决方法
- android http通信(二) 英译汉字典实例探究网络通信三种方法
- android sdk content loader 加载很慢的解决方法