EditText中并没有实现该功能的代码,所以我们只能另外想方法了,具体的实现思路有两个:一是通过监听键盘的弹起,二是通过监听EditText输入变化然后handler发送延迟消息来实现。
通过键盘的弹起来实现该功能比较麻烦,不考虑其他情况在布局最简单的情况下,代码实现如下:
public class MainActivity extends AppCompatActivity implements View.OnLayoutChangeListener { private LinearLayout layout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); layout = (LinearLayout) findViewById(R.id.ll); layout.addOnLayoutChangeListener(this); } @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { Log.e("TAG", "onLayoutChange: bottom" + bottom + " ---- oldBottom" + oldBottom); if(bottom > oldBottom && oldBottom != 0){ //键盘收起 Log.e("TAG", "onLayoutChange: 键盘被收起了"); //执行相关操作 } } }