根原因:listview(或其他有adapter的view)没有获得焦点


列子:

       android:layout_width="fill_parent"
   android:layout_height="fill_parent"//误点一:fill_parent
   android:orientation="vertical"

   android:descendantFocusability="blocksDescendants" //误点二

   >


正确应该是

     android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   >


切记:

adapter的xml的主layout(RelativeLayout)不能用fill_parent


原因有二。

一:

 原因:在adapter的xml中设置了 android:descendantFocusability="blocksDescendants"

注释下面的item就是ListView的item

   android:beforeFocusability      viewgroup在子项处理之前获得焦点

   android:afterFocusability            viewGroup在子项处理之后获得焦点

   android:blocksFocusability          viewGroup阻止子项获得焦点(以此子项的子项就能获得焦点)


 二:在layout_......设置了fill_parent,


三 Android 长按setOnItemLongClickListener 注意细节

 原理是fill_parent原来就是要求本layout全屏,但listview(或其他有adapter的view)限制item的高宽。

gridview.setOnItemLongClickListener(new OnItemLongClickListener() {                                    @Override         public boolean onItemLongClick(AdapterView<?> arg0, View arg1,                 int arg2, long arg3) {             // TODO Auto-generated method stub             Log.e("setOnItemLongClickListener", "setOnItemLongClickListener");             return true;         }                                                                      });      gridview.setOnItemClickListener(new OnItemClickListener(){                            @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,         long arg3) {     Log.e("setOnItemClickListener", "setOnItemClickListener"); }                                         });


1.如果返回false那么onItemClick仍然会被调用。而且是先调用onItemLongClick,然后调用onItemClick。 如果返回true那么click就会被吃掉,onItemClick就不会再被调用了。

2.监听onItemClick以及onItemLongClick影响弹出菜单吗? onItemClick不影响;onItemLongClick如果返回true那么就会吃掉click事件,导致菜单不能弹出。

3.如何让包含button的item也能弹出菜单,回调onItemClick以及onItemLongClick的监听器呢? 需要设置Button属性:android:focusable="false"  android:focusable="false"android:longClickable="true"  android:longClickable="true"否则无法收到onItemLongClick

更多相关文章

  1. android调用系统发短信传递电话号码和短信内容
  2. android -- Can't create handler inside thread that has not c
  3. Camera服务之--JNI部分
  4. Android中控制和禁止ScrollView自动滑动到底部的方法
  5. chromium for android Browser进程结构分析
  6. android 完美解决getview position多次调用
  7. 安卓学习笔记之使用widget桌面小控件及源码分析
  8. Android(安卓)vold核心篇(VolumeManager)
  9. Android(安卓)touch事件的派发流程

随机推荐

  1. ELIPS Studio 3 Beta 6支持iPhone和Andro
  2. android SDK安装出现Failed to fetch URL
  3. 【Android(安卓)界面效果34】Android里Se
  4. Android获得手机所有应用(非系统)、正在运
  5. Android源码学习--SystemServer进程
  6. Android(安卓)Handler机制之Handler 、Me
  7. Android各种访问权限Permission详解
  8. Android 开发工程师面试指南
  9. Android Market上发软件要注意哪些问题
  10. Android经典完美退出方法