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

自助建网站哪个好整改网站建设情况

自助建网站哪个好,整改网站建设情况,淘宝美工培训班怎么样,wordpress代替系统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/14571941/

相关文章:

  • 淘宝网站建设情况医院科室网站建设
  • 阿里巴巴网站推广方法wordpress标题去掉私密
  • 海口网站建设网页制作公司前端网页设计样例
  • o2o网站制作公司wordpress paypal收款
  • 安防网站模板织梦建站教程全集
  • 网站的推广和优化方案鄞州seo整站优化服务
  • vs2017 网站开发新冠疫苗接种率
  • 网站logo的颜色与网页的颜色中山 灯饰 骏域网站建设专家
  • 网站定制微安电力案例wordpress djiango
  • 如何在谷歌做网站外链杭州市拱墅区住房与建设局网站
  • 中国建设银行阜阳分行网站电子商务网站建设实训心得体会
  • 网站广告条效果wordpress怎么改模版
  • 网站开发技术期末考试试题营销策略有哪些4种
  • 做个网站需要多少钱?有没有旧装修要拆wordpress模板源码
  • 马鞍山的网站建设公司开封建网站的公司
  • 青岛外贸假发网站建设做网站要素
  • 合肥建网站的公司谷歌网站质量指南
  • 做搜狗手机网站点学网站开发好找工作吗
  • 做美食直播哪个网站最好wordpress摘要过滤
  • 河西做网站备案中心查网站
  • 东莞汽车网站建设建设阅读网站的研究意义
  • 怎么宣传自己的网站推广做网站上传服务器
  • 网站简介 更改怎么制作小程序教程
  • 做好网站优化的方法有哪些?室内设计学校培训的
  • 为什么手机进网站乱码wordpress分类静态
  • 罗湖区做网站的公司学生做爰网站
  • 一个人做网站 知乎优化英文
  • 桂林网页制作网络优化工程师是干什么的
  • 网站开发需要20万定州哪里可以做网站
  • 优质作文网站网站所有者是什么意思