【安卓】让子元素超出容器限制、!如何实现更灵活的容器布局、!

安卓中LinearLayout是用得最得心应手的容器,但有时候貌似不尽人意,其实安卓中的容器真的很灵活。!

1.让子元素超出容器限制。初步想象一下,貌似子元素给定margin为负数即可超出,但事实却是超出容器部分没有绘制出来。

其实是可以绘制出来的,红色容器的容器(注意是红色控件的容器,不是红色容器自己)给定android:clipChildren="false"即可,该参数默认为true,即其内元素会被其容器裁剪,注意之所以是红色容器的容器,是因为绿色按钮突出部分已不在红色容器绘制范围内了,而属于红色容器的容器。

     

2.下面这种布局,按传统模式一般最外层用LinearLayout,里面再套RelativeLayout,以及各种恶心的排位。

其实可以来得更爽快一点,一个LinearLayout容器搞定。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    android:clipToPadding="false"
    android:orientation="horizontal"
    android:padding="10dp" >

    <TextView
        android:id="@+id/tvVIP"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="VIP1"
        android:textColor="#000000"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/et"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingRight="20dp"
        android:text="1000" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="-20dp"
        android:text="元" />

    <Button
        android:id="@+id/btnDel"
        android:layout_width="wrap_content"
        android:layout_height="20dp"
        android:layout_marginLeft="-15dp"
        android:layout_marginTop="-10dp" />

</LinearLayout>

【安卓】让子元素超出容器限制、!如何实现更灵活的容器布局、!,布布扣,bubuko.com

时间: 2024-12-22 06:54:55

【安卓】让子元素超出容器限制、!如何实现更灵活的容器布局、!的相关文章

让子元素在父元素中水平居中align-items

做案例中,我们会发现让子元素在父元素中垂直居中,要设置margin和padding等,各种设置才能垂直居中 现在可以使用CSS3中的align-items实现 align-items 定义子元素在父元素交叉轴上如何对齐的,大多数不理解交叉轴是什么,下面举例来说明,不多说直接上代码 现在是这样显示的,我需要让子元素在父元素中垂直居中 1需要给父元素加display:flex;(不明白的可以先查下,后期会说明这个属性的作用) 2.再给父元素(也就是box)加align-items:center; 效

【安卓】乾坤大罗移,将容器触摸事件传至另一容器、!

思路: 1.基于view.dispatchTouchEvent 作用: 1.点击时,透过容器点到不是其子控件的控件.! 2.透过透明activity或dialog,将事件传至下方的activity.! 注:1>还可通过MotionEvent.obtain(downTime, eventTime, action, x, y, metaState);模拟事件,如用于引导中.! 被点击的容器: public class MyLinearLayout extends LinearLayout { pub

在 overlay 中运行容器 - 每天5分钟玩转 Docker 容器技术(51)

上一节我们创建了 overlay 网络 ov_net1,今天将运行一个 busybox 容器并连接到 ov_net1: 查看容器的网络配置: bbox1 有两个网络接口 eth0 和 eth1.eth0 IP 为 10.0.0.2,连接的是 overlay 网络 ov_net1.eth1 IP 172.17.0.2,容器的默认路由是走 eth1,eth1 是哪儿来的呢? 其实,docker 会创建一个 bridge 网络 "docker_gwbridge",为所有连接到 overlay

容器生态系统 - 每天5分钟玩转容器技术(2)

对于像容器这类平台级别的技术,通常涉及的知识范围会很广,相关的软件,解决方案也会很多,初学者往往容易迷失. 那怎么办呢? 我们可以从生活经验中寻找答案.当我们去陌生城市旅游想了解一下这个城市一般我们会怎么做? 我想大部分人应该会打开手机看一下这个城市的地图: 城市大概的位置和地理形状是什么? 都由哪几个区或县组成? 主要的交通干道是哪几条? 同样的道理,学习容器技术我们可以先从天上鸟瞰一下: 容器生态系统包含哪些不同层次的技术? 不同技术之间是什么关系? 哪些是核心技术哪些是辅助技术? 首先得对

从头认识java-13.11 对比数组与泛型容器,观察类型擦除给泛型容器带来什么问题?

这一章节我们继续类型擦除的话题,我们将通过对比数组与泛型容器,观察类型擦除给泛型容器带来什么问题? 1.数组 package com.ray.ch13; public class Test { public static void main(String[] args) { Fruit[] fruits = new Apple[5]; fruits[0] = new Apple(); fruits[1] = new Fuji(); fruits[2] = new Fruit(); } } cla

从头认识java-13.11 对照数组与泛型容器,观察类型擦除给泛型容器带来什么问题?

这一章节我们继续类型擦除的话题,我们将通过对照数组与泛型容器,观察类型擦除给泛型容器带来什么问题? 1.数组 package com.ray.ch13; public class Test { public static void main(String[] args) { Fruit[] fruits = new Apple[5]; fruits[0] = new Apple(); fruits[1] = new Fuji(); fruits[2] = new Fruit(); } } cla

品尝阿里云容器服务:用nginx镜像创建容器,体验基于域名的路由机制

在前一篇博文中我们了解了阿里云容器服务的路由机制: 请求 -> 负载均衡80端口 -> 容器主机9080端口 -> acsrouting路由容器80端口 --基于域名--> Web站点容器端口 在这篇博文中,我们用nginx镜像创建一个容器实际体验一下. 使用容器服务首先要创建一个集群(Cluster),比如这里我们创建一个名叫websites的集群(使用的是swarm mode): 创建好集群后,点击“管理”,进入集群管理页面 -> “负载均衡” -> “域名设置”,

12、《每天5分钟玩转Docker容器技术》学习-Docker命令之容器操作命令

a) Docker ps 命令 docker ps : 列出容器 docker ps [OPTIONS] -a :显示所有的容器,包括未运行的. -f :根据条件过滤显示的内容. --format :指定返回值的模板文件. -l :显示最近创建的容器. -n :列出最近创建的n个容器. --no-trunc :不截断输出. -q :静默模式,只显示容器编号. -s :显示总的文件大小. l 实例 列出所有在运行的容器信息. 列出最近创建的5个容器信息. 列出所有创建的容器ID. b) Docke

11、《每天5分钟玩转Docker容器技术》学习-Docker命令之容器生命周期管理

a) Docker create 命令 docker create :创建一个新的容器但不启动它 docker create [OPTIONS] IMAGE [COMMAND] [ARG...] -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项: -d: 后台运行容器,并返回容器ID: -i: 以交互模式运行容器,通常与 -t 同时使用: -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用: --name="nginx-lb":