app直播源代码,高仿软件评论底部弹出框
app直播源代码,高仿软件评论底部弹出框
这个弹窗的效果是使用BottomSheetDialogFragment做的,第一个弹出的对话框为CommentListDialogFragment ,第二个弹出的对话框为SendCommentDialogFragment,代码如下:
展示 CommentListDialogFragment。
1 | <br> <br> public class CommentListDialogFragment extends BottomSheetDialogFragment {<br> private Dialog dialog;<br> <br> @Override<br> public void onCreate(@Nullable Bundle savedInstanceState) {<br> super.onCreate(savedInstanceState);<br> setStyle(DialogFragment.STYLE_NO_FRAME, R.style.DialogTheme); //给dialog设置主题为透明背景 不然会有默认的白色背景<br> }<br> <br> @Override<br> public Dialog onCreateDialog(Bundle savedInstanceState) {<br> dialog = super.onCreateDialog(savedInstanceState);<br> dialog.setCanceledOnTouchOutside(true);//设置点击外部可消失<br> Window win = dialog.getWindow();<br> WindowManager.LayoutParams params = win.getAttributes();<br> win.setSoftInputMode(params.SOFT_INPUT_ADJUST_NOTHING);//设置使软键盘弹出的时候dialog不会被顶起<br> win.setWindowAnimations(R.style.Anim_Dialog_Bottom);//这里设置dialog的进出动画<br> return dialog;<br> }<br> <br> @Nullable<br> @Override<br> public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {<br> // 在这里将view的高度设置为精确高度,即可屏蔽向上滑动不占全屏的手势。如果不设置高度的话 会默认向上滑动时dialog覆盖全屏<br> View view = inflater.inflate(R.layout.list_dialog, container, false);<br> view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,<br> getScreenHeight(getActivity()) * 2 / 3));<br> return view;<br> }<br> <br> @Override<br> public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {<br> TextView postCommentText = view.findViewById(R.id.tv);<br> RecyclerView recyclerView = view.findViewById(R.id.rv);<br> recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));<br> ItemAdapter itemAdapter = new ItemAdapter();<br> recyclerView.setAdapter(itemAdapter);<br> postCommentText.setOnClickListener(new View.OnClickListener() {<br> @Override<br> public void onClick(View view) {<br> //写评论的弹出框<br> SendCommentDialogFragment dialogFragment = new SendCommentDialogFragment();<br> dialogFragment.show(getFragmentManager(),dialogFragment.getClass().getName());<br> }<br> });<br> <br> }<br> <br> /**<br> * 得到屏幕的高<br> */<br> public static int getScreenHeight(Context context) {<br> WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);<br> int height = wm.getDefaultDisplay().getHeight();<br> return height;<br> }<br> <br> @Override<br> public void onStart() {<br> super.onStart();<br> final View view = getView();<br> view.post(new Runnable() {<br> @Override<br> public void run() {<br> View parent = (View) view.getParent();<br> CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) (parent).getLayoutParams();<br> CoordinatorLayout.Behavior behavior = params.getBehavior();<br> BottomSheetBehavior mBottomSheetBehavior = (BottomSheetBehavior) behavior;<br> mBottomSheetBehavior.setHideable(false);//禁止下拉取消弹框<br> mBottomSheetBehavior.setPeekHeight(view.getMeasuredHeight());//让dialog的内容显示完整<br> }<br> });<br> } |
以上就是app直播源代码,高仿软件评论底部弹出框, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-05-10 短视频app开发,内容模糊化,解锁更多强化功能
2022-05-10 直播平台开发,动态文字输出,文字自动输出
2022-05-10 直播平台源代码,flutter 自定义九宫格,计算器布局,验证码认证