Android友盟一键登录按钮上方表现View

程序员 2024-9-12 05:05:02 9 0 来自 中国
1、筹划效果

1.png 2、实现方式

1、使用动态XML结构的方式筹划整体结构
/**     * 动态添加控件     *     * @param authRegisterXmlConfig 自定义结构,可以设置控件的位置和干系处理逻辑     */public void addAuthRegisterXmlConfig(UMAuthRegisterXmlConfig authRegisterXmlConfig)初始化UMAuthRegisterXmlConfig类时必要先调静态内部类Builder()内里的setLayout()方法,传入layout和 UMAbstractPnsViewDelegate类回调,接着调用Builder得到UMAuthRegisterXmlConfig对象。
2、在UMAbstractPnsViewDelegate类的onViewCreated(View view){...}的回调中添加如下代码:
view.postDelayed({    loginView = (view.parent as ViewGroup).findViewById(com.mobile.auth.R.id.authsdk_login_view)    val vp = loginView?.parent    if (vp is RelativeLayout) {        val loginWelfare =            view.findViewById<TextView>(R.id.tv_login_welfare_tips)        if (view is ViewGroup) view.removeView(loginWelfare)        vp.addView(loginWelfare)        val lp = loginWelfare.layoutParams        if (lp is RelativeLayout.LayoutParams) {            lp.width = ViewGroup.LayoutParams.WRAP_CONTENT            lp.height = ViewGroup.LayoutParams.WRAP_CONTENT            lp.addRule(                RelativeLayout.ALIGN_END,                loginView?.id!!            )            lp.addRule(                RelativeLayout.ALIGN_BOTTOM,                loginView?.id!!            )            lp.rightMargin = 0            lp.bottomMargin = 42.idp()            lp.topMargin = 0            loginWelfare.layoutParams = lp        }    }}, 500)此中
R.id.authsdk_login_view 是友盟“一键登录按钮”的ID
R.id.tv_login_welfare_tips 是自定义View中必要表现在“一键登录按钮”上面的View ID
实现过程大抵是先移除再添加----先从自定义layout中移除(由于自定义View在一键登录按钮的底部,必要移除, 也可以LayoutInflater.from(view.context).inflate()获取这个View)然后添加到“一键登录按钮”同一个ViewGroup中(会在顶部),这样就实现了在“一键登录按钮”上方表现View的目标。
如果本文对你有帮助就点个赞支持下吧~~~
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 20:21, Processed in 0.158132 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表