Android-仿今日头条评论
来源:互联网 发布:短信轰炸软件免费版 编辑:程序博客网 时间:2024/06/04 17:57
废话不多说,先来看看今天地效果图
!:
看完效果图在来理一下思路,点击底部评论按钮,弹出貌似一个对话框的东东,点击别的地方,自动消失,点击收起键盘,还会留在底部,再点击空白处,自动消失,那么问题来了。
emoji表情键盘实现可以看我写的另一篇博客:
EmoJi表情键盘实现
- 如何切换布局
- 如何点击空白处自动收起键盘
- 背景如何透明
- 具体实现
public class CommentDialog extends DialogFragment implements TextWatcher, View.OnClickListener { //点击发表,内容不为空时的回调 public SendListener sendListener; private TextView tv_send; private String hintText; private Dialog dialog; private EditText et_content; private ImageView iv_emoji; public CommentDialog() { } @SuppressLint("ValidFragment") public CommentDialog(String hintText, SendListener sendBackListener) {//提示文字 this.hintText = hintText; this.sendListener = sendBackListener; } public Dialog onCreateDialog(Bundle savedInstanceState) { // 使用不带Theme的构造器, 获得的dialog边框距离屏幕仍有几毫米的缝隙。 dialog = new Dialog(getActivity(), R.style.Comment_Dialog); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); // 设置Content前设定 View contentView = View.inflate(getActivity(), R.layout.dialog_comment, null); dialog.setContentView(contentView); dialog.setCanceledOnTouchOutside(true); // 外部点击取消 // 设置宽度为屏宽, 靠近屏幕底部。 Window window = dialog.getWindow(); WindowManager.LayoutParams lp = window.getAttributes(); lp.gravity = Gravity.BOTTOM; // 紧贴底部 lp.alpha = 1; lp.dimAmount = 0.0f; lp.width = WindowManager.LayoutParams.MATCH_PARENT; // 宽度持平 window.setAttributes(lp); window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); iv_emoji = (ImageView) contentView.findViewById(R.id.iv_emoji); et_content = (EditText) contentView.findViewById(R.id.dialog_comment_content); et_content.setHint(hintText); tv_send = (TextView) contentView.findViewById(R.id.dialog_comment_send); et_content.addTextChangedListener(this); tv_send.setOnClickListener(this); iv_emoji.setOnClickListener(this); et_content.setFocusable(true); et_content.setFocusableInTouchMode(true); et_content.requestFocus(); final Handler handler = new Handler(); dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { handler.postDelayed(new Runnable() { @Override public void run() { CommonUtils.hideSoftKeyBoard(getActivity()); } }, 200); } }); return dialog; } public void cleanText() { et_content.setText(""); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { if (s.length() > 0) { tv_send.setEnabled(true); tv_send.setTextColor(Color.BLACK); } else { tv_send.setEnabled(false); tv_send.setTextColor(Color.GRAY); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.dialog_comment_send: checkContent(); break; case R.id.iv_emoji: et_content.setText(""); break; } } private void checkContent() { String content = et_content.getText().toString().trim(); if (TextUtils.isEmpty(content)) { Toast.makeText(getContext(), "评论内容不能为空", Toast.LENGTH_SHORT).show(); return; } sendListener.sendComment(content); dismiss(); } public interface SendListener { void sendComment(String inputText); }}
- dialogfragment样式(Comment_Dialog)
<style name="Comment_Dialog" parent="@style/AppTheme"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:windowIsFloating">true</item> <item name="android:backgroundDimEnabled">false</item> <item name="android:windowSoftInputMode">stateAlwaysVisible</item><!--显示软件盘--> <item name="android:backgroundDimAmount">0.5</item> </style>
- 调用
private void showCommentDialog() { new CommentDialog("优质评论将会被优先展示", new CommentDialog.SendListener() { @Override public void sendComment(String inputText) { Toast.makeText(getApplicationContext(),inputText,Toast.LENGTH_SHORT).show(); } }).show(getSupportFragmentManager(), "comment"); }
- 最终效果图
阅读全文
0 0
- Android-仿今日头条评论
- Android 仿今日头条评论输入框
- 仿今日头条滑动评论效果
- Android 仿今日头条评论时键盘自动弹出的效果
- 仿今日头条
- 仿今日头条
- Android 频道管理仿今日头条
- viewpagerindacator仿今日头条
- 精仿今日头条
- 精仿今日头条
- 精仿今日头条
- 精仿今日头条
- 精仿今日头条
- 仿今日头条Fragment
- 仿今日头条adapter
- Android Android HorizontalScrollView滚动实现仿今日头条滑动
- android高仿今日头条 --新闻阅读器
- Android之仿今日头条标题栏效果
- 原型模式(Prototype)
- HDU 5762 [简单复杂度分析]
- 在cmd中使用cd命令切不到D盘
- 全卷积网络(FCN)与图像分割
- 感受
- Android-仿今日头条评论
- artTemplate和uEditor编辑器的问题
- 基础练习 BASIC-6 杨辉三角形
- Day8
- 更新式中值滤波算法
- android 小知识点记录
- SpringBoot+Dubbo分布式SOA项目骨架搭建
- JAVA计算后缀表达式(不含中缀表达式转化为后缀表达式)
- 基础练习 BASIC-7 特殊的数字