资源简介
方便使用的评论工具类,而且能监听到小键盘消失事件,能返回小键盘的高度,追踪评论位置。
代码片段和文件信息
package com.zhrt.dp.duanpian.liver_plugin.danmu;
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.PopupWindow;
import com.zhrt.dp.duanpian.R;
/**
* 用来显示聊天的布局,同时防止小键盘弹出导致播放内容高度的改变
* 为了保证每次都能正确监听小键盘的弹出与消失。pop不能复用,每次都要new哦
* Created by Eleven on 2016/9/21.
*/
public class TalkPopWindow {
public TalkPopWindow(Activity activity OnSendMessage onSendMessage){
this.activity = activity;
this.onSendMessage = onSendMessage;
}
/**
* 因为使用场景不同,所以这里可以用style标志来选取不同的布局,客官当然可以传id
* @param activity
* @param onSendMessage
* @param style
*/
public TalkPopWindow(Activity activity OnSendMessage onSendMessage int style){
this.activity = activity;
this.onSendMessage = onSendMessage;
this.style = style;
}
//入参
Activity activity;
OnSendMessage onSendMessage;
//业务引用
EditText et;//通用输入器
Button bt;//通用发送按钮
PopupWindow pw;//popWindow 当然也可以换成dialog,popwindow:不会引起视频的暂停等,但是没有复制粘贴功能;dialog:会引起视频的暂停,但是可以调起系统的复制粘贴功能
int style = 0;//输入部分样式
//View
//兼容其他用途,设置syle
View view = null;//popView
View tempView = null;//输入View的布局
//逻辑属性
int containerHeight = 0;//tempView的高度:
int height = 0;//布局的高度
boolean toShow = false;//是不是第一次尝试显示,与显示机制有关
int[] location = new int[2];
/**
* 显示pop
*/
public void pop(){
dimiss();
toShow = true;
view = activity.getLayoutInflater().inflate(R.layout.pop_layoutnull);
pw = new PopupWindow(view WindowManager.LayoutParams.MATCH_PARENTWindowManager.LayoutParams.MATCH_PARENT);
if(style == 0){//区分style
et = (EditText) view.findViewById(R.id.et_danmuEdit);
bt = (Button) view.findViewById(R.id.bt_sendDanmu);
view.findViewById(R.id.danmutLinear).setVisibility(View.VISIBLE);
view.findViewById(R.id.commentLinear).setVisibility(View.GONE);
tempView = view.findViewById(R.id.danmutLinear);
}else{
et = (EditText) view.findViewById(R.id.commentEdit);
bt = (Button) view.findViewById(R.id.commentButton);
view.findViewById(R.id.danmutLinear).setVisibility(View.GONE);
view.findViewById(R.id.commentLinear).setVisibility(View.VISIBLE);
tempView = view.findViewById(R.id.commentLinear);
}
tempView.measure(00);
containerHeight = tempView.getMeasuredHeight();//计算输入布局的高度。
//监听布局的变化
view.getViewTreeObserver
- 上一篇:网上求职招聘系统毕业设计
- 下一篇:Servlet API 中文版在线
评论
共有 条评论