首页 文章 精选 留言 我的

精选列表

搜索[响应式],共10009篇文章
优秀的个人博客,低调大师

使用响应式布局MediaQuery解决text组件在不同分辨率机型上文字显示不一致的问题

问题概述 text组件,设定宽度,文字铺满对应宽度,高分辨率机型加载文字压缩,联盟存在同样问题 复现步骤 1、加载demo 2、组件-->基础组件-->text组件 实际行为 1、低配机型加载正常 2、高分辨率机型加载文字压缩 验证 找了两台设备 ,其分辨率分别是2340 * 1080和2560 * 1600, 分别对一下样式进行验证 <textstyle="width:172px;">text-align:center</text>2340*1080 可以明显看到完整贴和边缘 抓取布局得到布局宽度是248 pixel 172 * (1080 / 750) = 247.68 四舍五入为248 2560 * 1600 可以看到布局不下了,被换行了 抓取布局得到布局宽度是367 pixel 172 * (1600 / 750) = 366.9 四舍五入为367 验证结果 在2560 * 1600的设备上完整布局这行文本需要175px; 在2340 * 1080的设备上完整布局这行文本需要172px; 分析 2560 * 1600 textsize = 64.0 2340 * 1080 textsize = 43.0 实际上是不同设备下的生效的textsize是不一样的,所以最终生成的布局宽度可能不是一个固定的宽度 解决 快应用提供了MediaQuery能力,可以用来适配不同分辨率的设备 在这里就可以使用mediaquery判断屏幕宽度的方式 例子 使用前 <template> <div> <text>text-align:left</text> </div> </template> <style> .text-test{ width:172px; }</style> 效果 使用后 <template> <div> <textclass="text-test">text-align:left</text> </div> </template> <style> @media(width>1080){ .text-test{ width:175px; } } .text-test{ width:172px; } </style> 效果 适配方案 首先找到不同分辨率的设备,使用ide的inspact功能获取到期望的宽度值 2560 \* 1600需要的宽度是175px;2340 * 1080需要的是172px; 使用mediaquery对不同设备进行区分 这里判断一下设备宽度 @media(width>1080){ .text-test{ width:175px; } } 原文链接:https://developer.huawei.com/consumer/cn/forum/topic/0204423007060260633?fid=18 原作者:Mayism

优秀的个人博客,低调大师

OnItemClickListener不响应

根原因:listview(或其他有adapter的view)没有获得焦点 列子: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"//误点一:fill_parent android:orientation="vertical" android:descendantFocusability="blocksDescendants"//误点二 > 正确应该是 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > 切记: adapter的xml的主layout(RelativeLayout)不能用fill_parent 原因有二。 一: 原因:在adapter的xml中设置了 android:descendantFocusability="blocksDescendants" 注释:下面的item就是ListView的item android:beforeFocusability viewgroup在子项处理之前获得焦点 android:afterFocusability viewGroup在子项处理之后获得焦点 android:blocksFocusability viewGroup阻止子项获得焦点(以此子项的子项就能获得焦点) 二:在layout_......设置了fill_parent, 三 Android 长按setOnItemLongClickListener 注意细节 原理是fill_parent原来就是要求本layout全屏,但listview(或其他有adapter的view)限制item的高宽。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 gridview.setOnItemLongClickListener( new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Log.e( "setOnItemLongClickListener" , "setOnItemLongClickListener" ); return true ; } }); gridview.setOnItemClickListener( new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Log.e( "setOnItemClickListener" , "setOnItemClickListener" ); } }); 1.如果返回false那么onItemClick仍然会被调用。而且是先调用onItemLongClick,然后调用onItemClick。 如果返回true那么click就会被吃掉,onItemClick就不会再被调用了。 2.监听onItemClick以及onItemLongClick影响弹出菜单吗? onItemClick不影响;onItemLongClick如果返回true那么就会吃掉click事件,导致菜单不能弹出。 3.如何让包含button的item也能弹出菜单,回调onItemClick以及onItemLongClick的监听器呢? 需要设置Button属性:android:focusable="false" android:focusable="false"android:longClickable="true" android:longClickable="true"否则无法收到onItemLongClick 本文转自lilin9105 51CTO博客,原文链接:http://blog.51cto.com/7071976/1216753,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册