当前位置: 首页 > news >正文

自助建网站哪个好网站维护建设招标

自助建网站哪个好,网站维护建设招标,网站做签到功能,网站平台被骗了怎么办Android四种方式刷新View 1.前言#xff1a; 最近在切换主题时有个TextView是Gone的状态#xff0c;切换主题后内容没有显示#xff0c;于是排查代码#xff0c;刚开始以为是textView没有设置内容#xff0c;但是打印日志和排查发现有setText. 2.View.VISIBLE与View.GO…Android四种方式刷新View 1.前言 最近在切换主题时有个TextView是Gone的状态切换主题后内容没有显示于是排查代码刚开始以为是textView没有设置内容但是打印日志和排查发现有setText. 2.View.VISIBLE与View.GONE的基本概念: 在Android中视图的可见性状态主要有三种 View.VISIBLE视图可见默认状态。 View.INVISIBLE视图不可见但仍占据布局空间。 View.GONE视图不可见并且不再占据任何空间。 3.使用GONE导致的问题: 布局性能下降在复杂的布局中频繁地更改视图状态为GONE可能会导致性能问题。这是因为Android在处理布局时需要重新计算可见视图的排列。UI体验不佳频繁切换视图的可见性可能会导致用户体验下降。例如用户在点击按钮时如果需要等待布局重新排列用户可能会感觉卡顿。数据绑定问题对数据绑定的视图进行GONE操作可能会使得数据变更不再更新。例如通过LiveData绑定的视图如果处于GONE状态它的更新可能不会体现在界面上。事件监听问题将一个视图设置为GONE会使得它的事件监听器失效这在某些情况下可能会导致功能缺失 4.主界面布局 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:idid/mainandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:layout_gravitycenterandroid:gravitycentertools:context.MainActivityTextViewandroid:idid/textviewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginStart40dpandroid:layout_marginEnd40dpandroid:backgroundcolor/design_default_color_primary_darkandroid:gravitycenterandroid:text这是一个textviewandroid:textColorcolor/whiteandroid:textSize18spandroid:visibilityvisibletools:text这是一个textview //LinearLayout5.解决方式1 4.1 使用协程刷新view private fun initView() {//使用协程方式刷新uiScope.launch {binding.textview.text 这是view使用协程刷新}}4.2 使用view.post刷新 private fun initView() {//使用view.post刷新binding.textview.post {binding.textview.text 这是view使用post刷新Log.d(TAG,view的内容${binding.textview.text} ${binding.textview.visibility})}}4.3 使用handler.post刷新 4.4 使用view.viewTreeObserver刷新 private fun initView() {//使用view.viewTreeObserver刷新binding.textview.viewTreeObserver.addOnGlobalLayoutListener {binding.textview.text 这是view使用viewTreeObserver刷新} }4.5 使用view.doOnLayout刷新 binding.textview.doOnLayout {// 当布局确定后执行的代码binding.textview.text 这是view使用doOnLayout刷新 }6.遇到问题 由于项目中是切换主题view是Gone的状态所以第5种方式是不生效的这里不推荐使用 方式2和3这里因为view是隐藏状态所以在post刷新时会闪烁一下为了解决此需要重新绘制布局调用view.requestLayout()或view.invalidate()都可以 方式4因为项目中的设备是34的所以不需要主动移除监听在低版本是需要做移除操作 7.效果截图 8.完整测试代码 package com.cloud.viewpostdemoimport android.animation.ObjectAnimator import android.os.Bundle import android.os.Handler import android.os.Looper import android.util.Log import android.view.View import android.widget.LinearLayout import androidx.appcompat.app.AppCompatActivity import androidx.core.view.doOnLayout import com.cloud.viewpostdemo.databinding.ActivityMainBinding import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.launchclass MainActivity : AppCompatActivity() {private val mainJob SupervisorJob()private val uiScope CoroutineScope(Dispatchers.Main mainJob)private lateinit var binding: ActivityMainBindingprivate val TAG by lazy {${javaClass.simpleName}${System.identityHashCode(this)}}override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)initView()}private fun initView() {//使用协程方式刷新uiScope.launch {binding.textview.text 这是view使用协程刷新}binding.textview.visibility View.GONE//使用view.post刷新binding.textview.post {binding.textview.text 这是view使用post刷新Log.d(TAG,view的内容${binding.textview.text} ${binding.textview.visibility})}//使用handler.post刷新val handler Handler(Looper.getMainLooper())handler.post {binding.textview.text 这是view使用handler刷新}//使用view.viewTreeObserver刷新binding.textview.viewTreeObserver.addOnGlobalLayoutListener {binding.textview.text 这是view使用viewTreeObserver刷新}binding.textview.doOnLayout {// 当布局确定后执行的代码binding.textview.text 这是view使用doOnLayout刷新}} }9.总结 今天的使用场景很特殊一般不会遇到不过既然遇到了就要找到问题原因解决掉问题当然解决方式有很多这里看个人没有说一定要使用哪种方式由于是demo所以没有做主题切换的操作view也是直接显示的感兴趣的同学可以自己尝试一下再view隐藏时切换主题会不会有此问题打卡收工祝大家新年快乐. 10.项目源码 https://gitee.com/jackning_admin/view-post-demo
http://www.hkea.cn/news/14405863/

相关文章:

  • 网站转出来个网站吧好人一生平安2021
  • 注册公司网上核名网站哈尔滨关键词优化平台
  • 建设php网站网站优化公司大家好
  • wordpress区分移动站静态网站登陆怎么做
  • 我有服务器怎么做网站网站做seo
  • 海珠做网站高清无线视频传输系统
  • 河南网站建设的详细策划佛山制作手机网站
  • 找简历的网站wordpress首页多重筛选
  • 微擎pc网站开发企业所得税税前扣除项目有哪些
  • 福州网站开发风格房产备案查询系统
  • 网站建设专员网站标题怎么做链接
  • 织梦网站英文版怎么做松江移动网站建设
  • 企业摄影网站模板wordpress接入翼支付宝
  • 郑州好的网站建设公司学做网站多长时间
  • 郑州网站建设知名公司开发公司企业管理制度
  • 做网站找哪家最好云南做网站费用
  • 宁城网站建设公司公司做网站能够带来的好处
  • 建立网站要钱吗财务记账网站开发
  • 宝塔网站搭建教程seo关键词库
  • 个人主页免费网站下载微信安装微信
  • 上海模板网站套餐推广手段
  • 微信网站怎么做给人做网站
  • 网站访客qq抓取统计系统怎么建立网站平台
  • 创建蛋糕网站建设方案合肥网站建设渠道
  • 怎么电话销售网站建设济南建网站的网站
  • 店铺网站平台建设方案深圳公司电话
  • 网站平台建设规划设计电影完整版视频在线
  • 个人网站有哪些站wordpress 搜索引擎
  • 授权登录网站怎么做济南好的seo
  • 沈阳网站制作全网性深圳做网站的公司搜行者seo