45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:如何在popupwindow中使用EditText获取焦点后自动弹出软键盘?

如何在popupwindow中使用EditText获取焦点后自动弹出软键盘?

2016-08-30 05:00:33 来源:www.45fan.com 【

如何在popupwindow中使用EditText获取焦点后自动弹出软键盘?

关于popupwindow中EditText获取焦点后自动弹出软键盘的问题,玩过手机qq或空间的童鞋应该知道,再点击评论时会弹出一个编辑框,并且伴随软键盘一起弹出是不是很方便啊,下面我们就来讲一下实现方法,先看效果:

如何在popupwindow中使用EditText获取焦点后自动弹出软键盘?

实现过程其实就是在listview的适配器Adapter中给"评论"这个所在的这个空间设置一个监听,当点击评论时,弹出popup,并异步弹出软键盘,看一下我的适配器中的代码片段:

//评论设置监听
holder.pinglun.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
showPopup(holder.pinglun);
popupInputMethodWindow();
//Toast.makeText(activity, "评论", Toast.LENGTH_SHORT).show();
}
});

接下来看showPopup弹出popupwindow具体实现方法:

private void showPopup(View parent){
if (popWindow == null) {
LayoutInflater layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(R.layout.popwindow_pinglun,null);
// 创建一个PopuWidow对象
popWindow = new PopupWindow(view,LinearLayout.LayoutParams.FILL_PARENT,100,true);
}
//popupwindow弹出时的动画popWindow.setAnimationStyle(R.style.popupWindowAnimation);
// 使其聚集 ,要想监听菜单里控件的事件就必须要调用此方法
popWindow.setFocusable(true);
// 设置允许在外点击消失
popWindow.setOutsideTouchable(false);
// 设置背景,这个是为了点击“返回Back”也能使其消失,并且并不会影响你的背景
popWindow.setBackgroundDrawable(new BitmapDrawable());
//软键盘不会挡着popupwindow
popWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
//设置菜单显示的位置
popWindow.showAtLocation(parent, Gravity.BOTTOM, 0, 0);
//监听菜单的关闭事件
popWindow.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss() {
}
});
//监听触屏事件
popWindow.setTouchInterceptor(new OnTouchListener() {
public boolean onTouch(View view, MotionEvent event) {
return false;
}
});
}


popupwindow布局如下:

先看效果:

如何在popupwindow中使用EditText获取焦点后自动弹出软键盘?

再看代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/title_background" >

  <RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:padding="5dp" >

    <TextView
      android:id="@+id/at"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentLeft="true"
      android:layout_centerVertical="true"
      android:layout_marginLeft="5dp"
      android:background="@drawable/qz_icon_at_normal" />

    <TextView
      android:id="@+id/biaoqing"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerVertical="true"
      android:layout_marginLeft="10dp"
      android:layout_toRightOf="@+id/at"
      android:background="@drawable/qz_icon_expression_normal" />

    <EditText
      android:id="@+id/pinglun"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_centerVertical="true"
      android:layout_marginLeft="10dp"
      android:layout_marginRight="5dp"
      android:layout_toLeftOf="@+id/fabiao"
      android:layout_toRightOf="@+id/biaoqing"
      android:background="@drawable/edit_bg_all"
      android:focusable="true"
      android:hint="来说一句吧..." />

    <Button
      android:id="@+id/fabiao"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentRight="true"
      android:layout_centerVertical="true"
      android:layout_marginRight="5dp"
      android:background="@drawable/title_write_btn_normal"
      android:padding="8dp"
      android:text="发表"
      android:textColor="#FFFFFF"
      android:textSize="14sp" />
  </RelativeLayout>

</RelativeLayout>



其中的图片什么的我就不贴了,大家可以自己找一下,然后看弹出软键盘的实现方法,注意这个需要异步操作:

private void popupInputMethodWindow() { 
  handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
      imm = (InputMethodManager) pinglun.getContext().getSystemService(Service.INPUT_METHOD_SERVICE); 
      imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 
    } 
  }, 0); 
} 

好了,本文就讲到这里,有类似需求的同学,可以依照我的方法试下,popupwindow的布局我只是简单的做了下,还不够美观,大家可以设计的更美观一下,谢谢大家!

 


 

 

本文地址:http://www.45fan.com/dnjc/69560.html
Tags: 获取 popupwindow EditText
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部