EditText inside ListView lost focus [duplicate]

2019-04-06 01:18发布

This question already has an answer here:

I have recently face this problem and I want to share with you my solution.

Problem:

  • You have a ListView with a Edit Text for each row like this:

MainList.xml

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

RowList.xml

<TextView 
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="100dp"
        android:layout_height="wrap_content"  
        android:inputType="number"/>
  • You are working with TABS: tabHost or TabActivity. (this is very important to notice).
  • When you click on any of the list item EditText, the focus moves out immediately and you are not able to type anything. However the keyboard is still on. But what ever you type in does not appear as the focus is lost.

Now, I'm going to give you my solution posting my own question.

1条回答
手持菜刀,她持情操
2楼-- · 2019-04-06 02:10

I have seen that some solutions are using:

android:descendantFocusability="beforeDescendants"

in the layout of the definition of the list.

For me this wasn't necessary. The problem was fixed using android:windowSoftInputMode="adjustPan":

<activity
        android:name="mainActivity"
        android:windowSoftInputMode="adjustPan"
        android:label="@string/app_name" >
    </activity>

in the Manifest.xml.

But you have to make sure that this line of code goes in the activity where you are defining the TabHost or TabActivity!!!.

查看更多
登录 后发表回答