动态加载布局的技巧

news/2024/5/17 10:51:55/文章来源:https://blog.csdn.net/weixin_45809829/article/details/128064733

文章目录

    • 动态加载布局的技巧
      • 使用限定符
      • 使用最小宽度限定符

动态加载布局的技巧

使用限定符

  • 在平板上面大多数时候采用的双页的模式,程序会在左侧列表上显示一个包含子项列表,右侧的面版会显示详细的内容的因为平板具有足够大的屏幕.完全能够显示两页的内容.但是在手机上手机只能显示一页的内容,因此需要两个页面分开显示.

    • 在运行时判断程序应该使用双页模式还是单页模式,需要借助限定符==(qualifier)==来进行实现.
    • 在layout/activity_main.xml中只包含一个Fragment,即单页模式
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><fragmentandroid:id="@+id/leftFrag"android:name="com.zb.fragmenttest.LeftFragment"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1" /></LinearLayout>
    
    • 创建一个layout_large目录,在这个目录下创建一个同样名为activity_main.xml的文件,但是在该布局当中包含两个Fragment,即双页模式.
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><fragmentandroid:id="@+id/leftFrag"android:name="com.zb.fragmenttest.LeftFragment"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1" /><fragmentandroid:id="@+id/rightFrag"android:name="com.zb.fragmenttest.RightFragment"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="3" />
    </LinearLayout>
    
    • 解决在Android开发中layout_large目录下不能创建xml文件的方法:https://blog.csdn.net/CEVERY/article/details/86593814
    • 其中large就是一个限定符,那些屏幕被认为是large的设备就睡加载layout_large文件夹下的布局,小屏幕设备则还是会加载layout文件夹下面的布局.
    • 这样就可以实现动态加载布局的功能.
    • 安卓中常见的限定符

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z9Ebe6T2-1669533175720)(C:/Users/zhengbo/%E6%88%91%E7%9A%84%E5%AD%A6%E4%B9%A0/Typora%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E5%AE%89%E5%8D%93/image-20221126163016539.png)]

使用最小宽度限定符

  • 最小宽度限定符,允许我们对屏幕的宽度指定一个最小值(以dp为单位)
  • 然后以这个最小值为临界点.屏幕宽度大于这个值得设备就加载一个布局
  • 屏幕宽度小于这个值得就加载另外一个布局
  • 在res目录下新家一个layout-sw600dp文件夹,然后在这个文件夹下面建一个activity_main.xml布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><fragmentandroid:id="@+id/leftFrag"android:name="com.zb.fragmenttest.LeftFragment"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1" /><fragmentandroid:name="com.zb.fragmenttest.RightFragment"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="3" />
</LinearLayout>
  • 这就意味着,当程序运行在屏幕宽度大于等于600dp的设备上时,会加载layout_sw600dp/activity_main布局,当程序运行在屏幕宽度小于600dp的设备上的时候,则仍然加载默认的layout/activity_main布局.

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cookie相关

Cookie是什么? RFC6265,HTTP State Management Mechanism 保存在客户端、由浏览器维护、表示应用状态的HTTP头部: 存放在浏览器中服务器生成Cookie在响应中通过Set-Cookie头部告知客户端客户端得到Cookie后,在同域下,后续请求都会自动将Cookie携带至请求中 cookie使用限制…

Spring【Spring的创建与使用】

Spring【Spring的创建项目与使用】&#x1f34e;一.Spring创建项目&#x1f352;1.1 创建⼀个 Maven 项⽬&#x1f352;1.2 添加 Spring 框架⽀持&#x1f352;1.3 添加启动类&#x1f34e;二.Bean对象的存储与获取&#x1f352;2.1 存储 Bean 对象&#x1f349; 2.1.1 创建 Be…

R语言与RStudio的下载与安装方法

本文介绍R语言及其集成开发环境RStudio的下载、安装方法。 R语言是一个属于GNU操作系统的开源软件&#xff0c;在数据统计与分析、可视化等方面具有优秀的表现&#xff1b;而RStudio则是R语言的集成开发环境&#xff08;IDE&#xff09;&#xff0c;可以帮助我们更好地编辑、调…

MIT 6.S081 Operating System Lecture5 (随意的笔记)

系列文章目录 文章目录系列文章目录TrapsA questionsyscallTraps 用户空间和内核空间的切换通常被称为 trap example: shwrite()ecall(); //write 通过 ecall() 指令执行系统调用之后跳转执行到 usertrap 如下图的执行过程。最终sys_write将要显示的数据输出到 console 上 …

clickHouse基础语法

clichouse数据类型 整形 lnt8 8bit,1字节 &#xff08;-128-127&#xff09;lnt16 16bitlnt32 32bitlnt64 64bit 无符号整型 相比于上面&#xff0c;就是把负数部分挪到正数部分 Ulnt8 &#xff08;0-255&#xff09;Ulnt16Ulnt32Ulnt64 浮点型 Float32 也就是floatFloa…

【Hack The Box】Linux练习-- Luanne

HTB 学习笔记 【Hack The Box】Linux练习-- Luanne &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月24日&#x1f334; &#x1f3…

数据结构堆介绍,图文详解分析——Java/Kotlin双版本代码

堆介绍 堆是一种特殊的树结构。根据根节点的值与子节点值的大小关系&#xff0c;堆又分为最大堆和最小堆。 最大堆&#xff1a;每个节点的值总是大于或者等于其任意子节点的值。所以最大堆中根节点即为最大值。 最小堆&#xff1a;每个节点的值总是小于或者等于其任意子节点…

内存和函数

程序的内存布局 Linux默认情况下将高地址的1GB空间分配给内核&#xff0c;用户进程使用剩下2GB或者3GB的内存空间。在用户空间里&#xff0c;也有很多地址区间有特殊的地位&#xff0c;一般来讲&#xff0c;应用程序使用的内存空间里有如下"默认"的区域 1、栈&#…

控制算法-模型预测MPC

本文记录一下MPC控制算法的学习过程和自己的理解&#xff0c;初步接触控制算法&#xff0c;理解肯定不是很完善&#xff0c;重在记录思考的过程。 背景 随着自动驾驶技术以及机器人控制技术的不断发展及逐渐火热&#xff0c;模型预测控制(MPC)算法作为一种先进的控制算法&…

【云原生 | Kubernetes 实战】04、k8s 名称空间和资源配额

目录 一、什么是命名空间&#xff1f; 二、namespace 应用场景 三、namespacs 使用案例 四、namespace 资源限额 一、什么是命名空间&#xff1f; Kubernetes 支持多个虚拟集群&#xff0c;它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。 命名空间namespace…

【计算机网络】数据链路层:使用广播信道的数据链路层(1)

局域网的数据链路层 局域网特点&#xff1a;网络为一个单位所拥有&#xff0c;地理范围和站点数目均有限。 地理范围和站点数目均有限。 局域网优点&#xff1a; 具有广播功能&#xff0c;从一个站点可以很方便地访问全网。 便于系统的拓展和演变&#xff0c;各设备的位置…

AtCoder Beginner Contest 279 F BOX 并查集 (大意失荆州

前言 赛时一直RE&#xff0c;思路很清晰&#xff0c;不知道RE哪里。。qwq 赛后开断点发现&#xff0c;map的大小不变&#xff0c; 最后发现是一个if条件写错了&#xff0c;寄。 不知道为什么会想起 银河英雄传说 题意&#xff1a; 初始n个盒子&#xff0c;盒子iii放着编号为i…

C++标准库分析总结(十)——<仿函数/函数对象>

目录 1.functor仿函数简介 2 仿函数的分类 3 仿函数使用 4 仿函数可适配的条件 1.functor仿函数简介 仿函数是STL中最简单的部分&#xff0c;存在的本质就是为STL算法部分服务的&#xff0c;一般不单独使用。仿函数&#xff08;functors&#xff09;又称为函数对象&…

第三十八篇 Vue中封装Swiper组件 2.0

上一篇内容讲到封装Swiper组件的一个过程&#xff0c;如果是静态的数据封装组件初始化在mounted当中并无多大影响&#xff0c;但是这样封装的组件复用性较低或者可能只使用一次&#xff0c;那么在动态使用通过ajax请求数据需要面临的是swiper初始化过早的问题&#xff0c;在mou…

408考研科目《数据结构》第八章第一节:排序的基本概念和插入排序(直接插入排序,折半插入排序,希尔排序)

文章目录教程1.排序的基本概念1.1 排序算法的评价指标1.2 排序算法的分类2. 插入排序2.1 直接插入排序2.1.1 算法效率分析2.2 折半插入排序总结2.3 希尔排序 &#xff08;Shell Sort&#xff09;总结教程 排序&#xff1a; https://www.bilibili.com/video/BV1b7411N798/?p77…

VsCode 配置eslint,支持typescript的语法检查,及时发现低级语法错误,包括函数未定义等行为

背景 最近学习cocos的小游戏制作&#xff0c;参考游戏管理器的代码进行调试的时候&#xff0c;发现自己运行的结果一直都是跟官方效果不一样&#xff0c;没有自动生成更多的方块。肉眼检查代码差异&#xff0c;基本上代码是一样的&#xff0c;浏览器页面调试的时候也看不出问题…

MyBatis ---- 搭建MyBatis

MyBatis ---- 搭建MyBatis1. 开发环境2. 创建maven工程a>打包方式&#xff1a;jarb>引入依赖3. 创建MyBatis的核心配置文件4. 创建mapper接口5. 创建MyBatis的映射文件6. 通过junit测试功能7. 加入log4j日志功能a>加入依赖b>加入log4j的配置文件1. 开发环境 IDE&a…

人工智能轨道交通行业周刊-第24期(2022.11.21-11.27)

追风赶月莫停留&#xff0c;平芜尽处是春山。 --《田歆华夏说》 本期关键词&#xff1a;BIM应用、地铁控制中心、车辆检修智能化、模型轻量化、隧道通风 1 整理涉及公众号名单 1.1 行业类 RT轨道交通中关村轨道交通产业服务平台人民铁道世界轨道交通资讯网铁路信号技术交…

Redis最全详解(一)——基础介绍

Redis介绍 redis是基于内存可持久化的日志型、Key-Value数据库。redis安装在磁盘&#xff0c;但是数据存储在内存。非关系型数据库NoSql。开源免费&#xff0c;遵守BSD协议&#xff0c;不用关注版权问题。 redis作者github&#xff1a;github.com/antirez redis是一种基于键…

idea如何快速找到项目中对应的类(包括源码)

文章目录1. 前言2. 先说结论3. idea的全局搜索功能 MethodValidation4. 搜索spring源码(例子)1. 前言 最近在看某些功能的时候&#xff0c;会去看对应的源码&#xff0c;而有时候只知道类名&#xff0c;不知道从哪里进入源码&#xff0c;因此就比较好奇&#xff0c;idea的全局…