首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 仿UC浏览器详情页评论弹框效果

大概就这种效果 额,突然发现UC被我卸载了,这个是QQ浏览器的效果,不过都一样,如果当前页面不是全屏的话,把根布局设为相对布局,然后设置评论布局为处于底部,这样在点击评论时弹开键盘会触发布局重绘,底部的评论也会处于软键盘的上方...,键盘消息,布局下移,但是我们要说的是全屏的情况下我们如何处理。...(getWindow().getDecorView(), Gravity.BOTTOM, 0, 0); } 当然,最后最关键的是popupWindow里的配置,要不然popupWindow会被软键盘遮挡...(editText, mContext); } public void showAtLocation(View parent, int gravity, int x, int y) {...); // 在显示输入法之后调用,否则popupwindow会在窗口底层 super.showAtLocation(parent, gravity, x, y); }

1.3K30

ScrollView里面基于某个View弹出PopupWindow,PopupWindow不会跟着View滚动?

初看其实很简单,根据A的位置和大小,算出PopupWindow的位置,调用showAtLocation方法即可实现在A正上方弹出。...] + v.getMeasuredWidth() / 2 - measureWidth / 2, location[1] - measureHeight); } 如上,就可以在textView正上方显示出一个...这里写图片描述 可以发现,我们的PopupWindow并没有跟随一起滚动,这是因为在调用showAtLocation的时候,PopupWindow的位置已经确定了,所以并不会跟着A的滚动而滚动。...这样的效果产品经理肯定不会同意的,所以就需要我们来动态更新PopupWindow的位置了。...我们这里只需要让PopupWindow始终在A的正上方,所以重点就是确定随着ScrollView的滚动PopupWindow的位置。

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android弹窗二则: PopupWindow和AlertDialog

    这里说两个常用的弹窗类, PopupWindow和AlertDialog. 我的理解就是, PopupWindow较为随性, 可以在任意位置弹窗, 比如你经常看到的朋友圈点赞的那个小的弹窗....那AlertDialog就很正经了, 位置固定在中央, 比如无比烦人的更新提示就是用的它, 大多数都是消息标题+内容+确定按钮+取消按钮. 好, 不多废话了. ?...为了保护你的眼睛, 图片已处理 ---- PopupWindow 官方文档传送门 实例解析 先来看一段常规的PopupWindow的使用, 然后逐行分析下....(false);这句在之前那句为true的前提下, true和false效果几乎一样....单选多选条目展示 ---- 内容补充 补充: 我们现在来说一个比较复杂的, 也比较有意思的. 就是在弹窗中填充自定义view.

    1.6K60

    Android项目实战(二十七):数据交互(信息编辑)填写总结

    或者fragment中使用   ①、这里我把对话框写在一个方法里,方便使用 title 文本对话框的标题 isSingleLine EditText是否限制一行显示 maxSize EditText中文字的最大长度...textview 修改的TextView控件,首先要讲该控件的文本显示在EditText中,点击确定后需要将编辑文本显示在改控件中 private void showEditDialog(String...对象 // 设置popupWindow显示的位置 // 此时设在界面底部并且水平居中 popup.showAtLocation...显示的位置 // 此时设在界面底部并且水平居中 popup.showAtLocation(find_expert_ly,...对象 // 设置popupWindow显示的位置 // 此时设在界面底部并且水平居中 popup.showAtLocation(feedback_list_ly

    3.5K70

    Android PopupWindow怎么合理控制弹出位置(showAtLocation)

    说到PopupWindow,应该都会有种熟悉的感觉,使用起来也很简单 // 一个自定义的布局,作为显示的内容 Context context = null;  // 真实环境中要赋值 int layoutId...(contentView); 如果创建PopupWindow的时候没有指定高宽,那么showAsDropDown默认只会向下弹出显示,这种情况有个最明显的缺点就是:弹窗口可能被屏幕截断,显示不全,所以需要使用到另外一个方法...showAtLocation,这个的坐标是相对于整个屏幕的,所以需要我们自己计算位置。...如下图所示,我们可以根据屏幕左上角的坐标A,屏幕高宽,点击View的左上角的坐标C,点击View的大小以及PopupWindow布局的大小计算出PopupWindow的显示位置B ?...[1]);// windowContentViewRoot是根布局View 上面的例子只是提供了一种计算方式,在实际开发中可以根据需求自己计算,比如anchorView在左边的情况,在中间的情况,可以根据实际需求写一个弹出位置能够自适应的

    3K110

    Android PopupMenu and PopupWindow

    本文通过一个实例简单介绍下PopupMenu和PopupWindow的区别和各自使用方式。...实例的代码使用了Android Annotations,但是代码读起来应该是没有障碍的,如果不太了解AA的话,可以参考下此文。...2.实例基础代码 我们要实现的界面就是上面所示的界面,上下各有两个按钮,点击按钮分别在正确的位置弹出PopupMenu或者PopupWindow,下面是界面代码: <RelativeLayout...}); } 从上面代码可以看出,点击上面和下面的按钮代码略微不同,因为这里我希望PopupWindow一直是从界面的底部慢慢滑入进入的,所以要控制下位置。...关于PopupWindow的显示位置,它既提供了showAtLocation方法精确控制,也提供了showAsDropDown(view)方法简单控制。

    2.3K21

    —PopupWindow

    PopupWindow 与 Dialog 最关键的区别是 Dialog 不方便我们去指定弹窗的显示位置,只能默认的显示在页面中间。...这里说的不容易指定位置是没有方便的系统的接口来控制 Dialog 的显示位置,当然你可以使用 WindowManager 来指定 Dailog 的显示位置,但对于 PopupWindow 你可以通过系统提供的接口随意定义显示位置...contentView) //PopupWindow 要显示的内容 在设置宽高的时候可以使用固定的 px 值,或者使用 wrap_content、 match_parent。...设置屏幕坐标 showAtLocation 附着在某个控件上(相对于这个控件本身) public void showAsDropDown(View anchor) // 传入的View对象 anchor...上面我们的代码对 x, y 值都进行设置,但只有 y 轴的位置有效果,说明当 PopupWindow 的大小,或者位置超出屏幕,无论设置 x, y 是多少都不会起作用。

    1.2K50

    Android开发笔记(三十六)展示类控件

    聊天室窗口的高度是固定的,新的文字消息总是加入到窗口末尾,同时窗口内部的文本整体向上滚动,而窗口的大小保持不变、位置也保持不变。...在代码中实现时,可调用如下方法: setGravity : 设置文本的对齐方式。 setLines : 设置文本的行数。 setMaxLines : 设置文本的最大行数。...在XML布局文件中实现时,可设置如下属性: drawableTop : 指定文本上方的图形。 drawableBottom : 指定文本下方的图形。...在代码中实现时,可调用如下方法: setCompoundDrawables : 设置文本周围的图形。该方法有四个参数,分别表示左边、上方、右边、下方的图形。...EditText还有一个需要特殊处理的地方,就是自动关闭软键盘。一般我们希望点击其它控件时,原输入框的软键盘就要自动消失,可惜Android不是这样处理。

    1.5K30

    Android项目实战(十七):QQ空间实现(二)—— 分享功能 弹出PopupWindow

    分析: 1、点击右上角三个点的图标,在界面底部弹出一个区域,这个区域有一些按钮提供给我们操作 2、当该区域出现的时候,详情界面便灰了,也说成透明度变化了 3、当任意选了一个按钮或者点击了该区域以外的部分...,注意 父容器需要有一个id,因为我们需要它来给PopupWindow设置弹出的位置 的位置 // 此时设在界面底部并且水平居中 feedSelectPopupWindow.showAtLocation(relativeLayout...PopupWindow,报错如下: Unable to add window -- token null is not valid; is your activity running一般是错误在 .showAtLocation...()方法上,那么要注意PopupWindow和Dialog一样是需要依赖于Activity存在的 所以不要在onCreate()方法中使用 .showAtLocation()方法 ,因为这个时候Activity

    1.1K60

    全局事件-广播(Broadcast)

    从这种表现形式上看,很像面向对象中的事件(Event),对于事件(onClick、onKeydown)来说,从来不会预知用户什么时候触发他们,只能默默的等待不可预知的事件发生。...,将其输出到Logcat中查看,如上述代码所示 由于接受的短信内容是以字节数组的形式保存的,为了方便使用这些数据,需要使用SmsMessage.createFromPdu方法将这些字节数据组成的数据转换为...,否则无法阻止接收器接收广播 ---- 用代码注册广播接收器 如果在清单文件中配置广播接收器,程序安装后就会自动注册广播接收器,如果想在适当的时候注册广播接收器,在使用完成之后将其注销就需要使用Java...广播的优先级只是对同步处理方式起作用,如果在接收器中使用了异步处理方式,则调用的顺序除了和优先级有关,还和Android系统的线程调用有关。...popupWindow = new PopupWindow(view,500 ,100); popupWindow.setTouchable(false); popupWindow.showAtLocation

    1.1K60

    信息提醒之Toast-更新中

    概述 Toast与对话框类似,也会在屏幕的某个位置弹出一个窗口,在窗口中可以显示文本、图片等信息 与对话框不同的是,Toast信息提示框不可获得焦点,而且在显示一定的时间后会自动关闭。...因此,再显示Toast信息提示框的同时,屏幕上的控件仍然可以继续操作。 Toast的基本用法 显示Toast需要使用android.widget.Toast类。...); 分析: 上述代码使用Toast类的静态方法创建了一个Toast对象。...注意:在创建只显示文本的Toast对象时,建议使用Toast.makeText方法,而不要直接new Toast对象,虽然Toast类有setText方法,但是不能在使用new关键字创建Toast对象后设置...popupWindow = new PopupWindow(view,500 ,200); popupWindow.setTouchable(false); popupWindow.showAtLocation

    75150
    领券