2015-09-04 136 views
1

的焦点更改我有一个观点,它包含一个ListView的EditText ListView中 - 的EditText

<ListView 
    android:id="@+id/products_list" 
    android:layout_width="match_parent" 
    android:descendantFocusability="afterDescendants" 
    android:layout_height="0dp" 
    android:layout_weight="1" /> 

每一行有一些图片,文字和一个EditText。 我在EditTexts中实现了获取/放松焦点的功能,但是我有问题,当我进入视图时,点击一些EditText。总是在任何EditText上的第一次点击将焦点从单击的焦点改变为列表中的第一个焦点。

我对这一观点持有者已实现的方法:

@Override 
    public void bindValues(CatalogsProducts item) { 
     note.addTextChangedListener(this); 
     note.setOnFocusChangeListener(this); 
    } 


    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     if(v instanceof EditText && !hasFocus) { 
      if(item != null && !TextUtils.isEmpty(note.getText().toString())) { 
       item.setCertainNote(note.getText().toString()); 
      } 
     } 
    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     item.setCertainNote(s.toString()); 
    } 

任何想法如何不注重从第一次点击的EditText松动?

回答

2

在布局XML:

<ListView 
    android:id="@+id/products_list"  
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:layout_width="fill_parent" 
    android:descendantFocusability="beforeDescendants" 
    /> 

在Mainfest.xml:

<activity android:name= ".yourActivity" android:windowSoftInputMode="adjustPan"/> 

希望这可以帮助您!

+0

它的工作原理 - thx。 但有什么办法,保持调整大小的视图的功能,而不失去对点击项目的重点? – bqr