zoukankan      html  css  js  c++  java
  • ListView 中含有 EditText 导致焦点丢失的问题

    ListView 中的 item 中有 EditText 时。

    如果activity的输入法选项设置为 android:windowSoftInputMode="adjustResize"

    当点击一个EditText弹出输入法时时,会导致界面layout变化,导致 listview 重新调用getView刷新界面,各个itemView的状态会被清除,导致当前点击的EditText的焦点丢失,导致无法输入。

    解决方法: 记住当前hasFocus的Edit的position,在getView的时候重新设置focus。

     @Override
        public View getView(int position, View convertView, ViewGroup parent) {
    
            Log.e("ss", "getView:" + position);
    
            View v = null;
            ViewHolder vh = null;
            if (convertView != null) {
                v = convertView;
                vh = (ViewHolder) v.getTag();
            } else {
                v = mInflater.inflate(R.layout.item, parent, false);
                vh = new ViewHolder();
                vh.infoTxt = (TextView) v.findViewById(R.id.info_txt);
                vh.editTxt = (EditText) v.findViewById(R.id.edit_txt);
                vh.editTxt.setOnFocusChangeListener(mListener);
                v.setTag(vh);
            }
    
            vh.editTxt.setTag(position);
            vh.infoTxt.setText(position + "");
    
            if (mFocusPosition == position) {
                vh.editTxt.requestFocus();
            } else {
                vh.editTxt.clearFocus();
            }
    
            return v;
        }
    
        int mFocusPosition = -1;
    
        OnFocusChangeListener mListener = new OnFocusChangeListener() {
    
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                int position = (Integer) v.getTag();
                if (hasFocus) {
                    mFocusPosition = position;
                }
                Log.e("test", "onFocusChange:" + position + " " + hasFocus);
            }
        };
  • 相关阅读:
    wpf 不规则窗体
    wpf treeview使用expanded事件出错的问题
    获取文件图标
    C#操作快捷方式总结
    mysql 更改存储引擎,更改自增列计数值,更改默认字符集
    zend framework集成smarty
    文本文件数据导入mysql注意事项
    MYSQL 外键
    uchome 日志发布函数blog_post()
    mysql order by null
  • 原文地址:https://www.cnblogs.com/zijianlu/p/3402321.html
Copyright © 2011-2022 走看看