Launcher应用列表内搜索框显示异常

news2025/4/19 10:27:31

问题描述

应用列表界面搜索框显示异常。本地试验后发现以下规律。
1、删除几个底边栏图标
2、旋转屏幕
3、进入应用列表,观察上方搜索框显示

问题分析

此问题是launcher内部界面显示问题,比较初级。找到规律后,发现应用列表内搜索框和底边栏有关联。
1、使用AndroidStudio布局工具Layout Inspector解析界面布局
发现搜索框有2层HotseatQsbWidget和ExtendedEditText
在这里插入图片描述
2、对搜索框正常和异常时的布局参数、内外边距、左边进行对比。看看哪个值出现了问题导致显示异常。
显示异常时,ExtendedEditText的宽比正常时大了200px。
从布局中查看ExtendedEditText是match_parent的

<com.android.launcher3.ExtendedEditText
        android:id="@+id/fallback_search_view"
        android:layout_width="match_parent"
        android:layout_height="@dimen/all_apps_search_bar_field_height"

继续其父view HotseatQsbWidget的布局数据。发现HotseatQsbWidget的padding发生了变化。正常时padding为20px,显示异常时是-80px。导致左右被拉宽100px * 2 = 200px,导致此问题。

解决方案

从上述分析得出,修改底边栏图标个数,导致边距发生变化,从而影响到了搜索框的显示。
跟踪代码HotseatQsbWidget 中settingPadding的地方查看逻辑计算是否有问题。

    @Override
    public void setInsets(Rect insets) {
    	...
        Rect padding = mActivity.getDeviceProfile().getHotseatLayoutPadding();
        setPaddingUnchecked(padding.left, 0, padding.right, 0);
        requestLayout();
    }

发现padding是getHotseatLayoutPadding,这就和之前的分析对上了。
最终修改为当 padding.left和padding.right < 0时,设置为0。保证显示效果。

尾注

界面显示问题,比较简单。找到view,分析view宽高,坐标,内外边距等因素,找到影响效果的关键点后跟踪相关逻辑,修复即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/184434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Hadoop】MapReduce数据倾斜问题解决方案

默认情况下Map任务的数量与InputSplit数量保持一致&#xff0c;Map阶段的执行效率也与InputSplit数量相关&#xff0c;当遇到大量的小文件时我们采用SequenceFile合并成一个大文件&#xff0c;以此来提高运行效率&#xff08;【Hadoop】MapReduce小文件问题解决方案&#xff08…

OJ万题详解––高考排名(C++详解)

题目 题目描述 高考成绩的排名规则是按总分由高到低排&#xff0c;总分相同的人排名应相同&#xff0c;例如有 5 个同学的考高成绩&#xff1a; 考号姓名成绩001c1567002ygh605003gl690004xtb605005wzs567按照成绩排序后&#xff0c;成绩如下&#xff1a; 排名考号姓名成绩1003…

C/C++ 相关低耦合代码的设计

在我们设计C/C 程序的时候&#xff0c;有时需要两个类或者两个模块相互“认识”&#xff0c;或者两个模块间函数互相调用&#xff0c;假设我们正在开发一个网上商店&#xff0c;代表的网店客户的类必须要知道相关的账户。UML图如下&#xff0c;这被称为环依赖&#xff0c;这两个…

【GIS前沿】什么是新型基础测绘、内容、产品体系、特征?

《测绘法》指出&#xff0c;基础测绘是建立和维护全国统一的测绘基准和测绘系统&#xff0c;进行航天航空影像获取&#xff0c;建立和更新维护基础地理信息数据库&#xff0c;提供测绘地理信息应用服务等。 文章目录一、什么是新型基础测绘&#xff1f;二、新型基础测绘的特征三…

6、场景法

为什么使用场景法 现在的系统基本上都是由事件来触发控制流程的。如&#xff1a;我们申请一个项目&#xff0c;需先提交审批单据&#xff0c;再由部门经理审批&#xff0c;审核通过后由总经理来最终审批&#xff0c;如果部门经理审核不通过&#xff0c;就直接退回。每个事件触…

1.Docker Desktop安装设置

1.下载最新版本Download Docker Desktop | Docker 2.进行安装 2.1进行4.x版本安装 2.2最新版本出现问题 出现 docker desktop stopped 过一会后 quit退出&#xff0c;下载3.x版本 2.3继续安装 Enable Hyper-V windows Features 启动Hyper-V windows 虚拟化功能 百度百科-验证…

【GD32F427开发板试用】一、环境搭建与freertos移植

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;chenjie 【GD32F427开发板试用】一、环境搭建与freertos移植 【GD32F427开发板试用】二、USB库移植与双USB CDC-ACM功能开发 【GD32F427开发板…

java集合类(属于工具类)概述

Java集合类可用于存储数量不等的对象&#xff0c;并可以实现常用的数据结构&#xff0c;如栈、队列等。除此之外&#xff0c;Java集合还可用于保存具有映射关系的关联数组。 Java集合大致可分为Set、List、Queue和Map四种体系&#xff1a; 其中Set代表无序、不可重复的集合&…

限制系统性能瓶颈的因素、衡量系统性能的指标

文章目录限制系统性能瓶颈的因素cpu内存磁盘IO网络IO异常数据库锁竞争衡量系统性能的指标响应时间吞吐量计算机资源分配使用率负载承受能力有时候我们的程序性能不高,需要提升性能,这个时候可以从以下几个角度去考虑是什么限制了我们的性能瓶颈.限制系统性能瓶颈的因素 cpu 有…

spring-bean的生命周期-【源码解析】-上

一、spring的bean概念Spring最重要的功能就是帮助程序员创建对象&#xff08;也就是IOC&#xff09;&#xff0c;而启动Spring就是为创建Bean对象做准备&#xff0c;所以我们先明白Spring到底是怎么去创建Bean的&#xff0c;也就是先弄明白Bean的生命周期。Bean的生命周期就是指…

RocketMq-dashboard:topic 5min trend 原理和源码分析(一)

本文阅读基础&#xff1a;使用或了解过rocketMq&#xff1b;想了解"topic 5min trend"背后的原理&#xff1b;想了解监控模式如何实现。RocketMq的dashboard&#xff0c;有运维页面&#xff0c;驾驶舱&#xff0c;集群页面&#xff0c;主题页面&#xff0c;消费者页面…

[羊城杯 2020]easyre 1题解

一步一个脚印地耐心攀登&#xff0c;就是别去看顶峰&#xff0c;而要专注于在爬的路。 ——黑泽明 目录 1.查壳 2.IDA静态分析main函数 3.研究三重加密 第一重加密 第二重加密 第三重加密 4.解密 1.查壳 64bit exe文件 2.IDA静态分析main函数 拖入IDA&#xff0c;找到…

芯片验证系列——Checker

在产生了有效的激励后&#xff0c;需要判断出不符合功能描述的行为。Checker就是用于查看DUT是否按照功能描述做出期望的行为&#xff0c;识别出所有的设计缺陷。 按照激励的生成方式和检查的功能点分布可以将验证划分为三种方式&#xff1a; 黑盒验证&#xff1a;验证环境不…

【Vue】前端工程化与 webpack

一、前端工程化前端开发1.1 小白眼中的前端开发会写 HTML CSS JavaScript 就会前端开发需要美化页面样式&#xff0c;就拽一个 bootstrap 过来需要操作 DOM 或发起 Ajax 请求&#xff0c;再拽一个 jQuery 过来需要快速实现网页布局效果&#xff0c;就拽一个 Layui 过来1.2 实…

redis事务详解

事务是逻辑上对数据的一组操作&#xff0c;这操作要么一次全部成功或者这操作全部失败&#xff0c;是不可分割的单位 四大特性 原子性&#xff0c;一致性&#xff0c;隔离性&#xff0c;持久性(ACID) redis的事务 redis是弱事务型数据库&#xff0c;并不具备ACID的全部特性 re…

python情感分析:基于jieba的分词及snownlp的情感分析!

情感分析&#xff08;sentiment analysis&#xff09;是2018年公布的计算机科学技术名词。 它可以根据文本内容判断出所代表的含义是积极的还是负面的&#xff0c;也可以用来分析文本中的意思是褒义还是贬义。 一般应用场景就是能用来做电商的大量评论数据的分析&#xff0c;…

【Linux】基础IO文件操作

目录 基础IO 重谈文件 重谈C语言的文件操作 系统文件IO 理解文件 文件描述符fd 0 & 1 & 2 文件描述符的分配规则 重定向 使用 dup2 系统调用 在minishell中添加重定向功能 缓冲区 理解缓冲区 再次理解缓冲区 基础IO 重谈文件 1、空文件&#xff0c;也要…

C++STL入门:string的基本使用小笔记

目录 一.string类简介 二.string类的常用成员接口 1.string类对象的构造函数接口 2. string类对象的容量操作接口 std::string::size std::string::length std::string::empty std::string::clear std::string::resize std::string::reserve 3.string类对象的访问及遍历操作…

【精品】k8s的CKA考题17道解析

目标一:记住命令关键单词 第4道题:scale replicas 第5道题:cordon、uncordon、drain 第8道题:target-port 目标二:完成操作要求 NoSchedule 查看工作节点的健康状态 ,确定集群中有多少节点为 Ready 状态,并且去除包含 NoSchedule 污点的节点。之后将数字写到/opt/repl…

Mybatis-Plus使用指南

1、了解Mybatis-Plus 1.1、Mybatis-Plus介绍 MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 官网&#xff1a;https://mybatis.plus/ 或 https://mp.baomi…