精华内容
下载资源
问答
  • 在学习Android布局的过程中,我经常会混淆android:gravityandroid:layout_gravity这两个属性,因为它们就差一点点而已。因此,特以此文记录一下关于这两者的知识点。简单的说法android:gravity :view里面的内容在...

    在学习Android布局的过程中,我经常会混淆android:gravity和android:layout_gravity这两个属性,因为它们就差一点点而已。因此,特以此文记录一下关于这两者的知识点。

    简单的说法

    android:gravity :view里面的内容在这个view中的位置

    android:layout_gravity :这个view相对于它父view的位置

    简单的做法

    在某个Activity的xml布局文件,写上下面的代码:

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_gravity="right"

    android:gravity="left"

    android:text="Text" />

    显示这样内容:

    c8a00330a1b1?nomobile=yes

    然后,不求甚解的人就会以为自己懂了。

    但一个正常的App界面,怎么会只有一个控件?

    我们需要了解的是,这两个属性在“控件与控件”、“控件与布局”、

    “(控件+控件+……)与布局”之间,各种组合情况下会产生怎样的效果。

    只有了解并且上机体验过,才能知道它俩怎么去用。

    关心一下它俩从哪里来的

    我在官网以这两个搜了一下,看得都晕了,

    还是没太弄清楚怎么回事,先记下来:

    android:gravity :搜到Gravity这个类,里面有这些方位的静态常量

    android:layout_gravity :是LinearLayout.LayoutParams这个静态类的属性

    因为观察那几种布局和它们的.LayoutParams的XML属性栏目,

    android:layout_gravity在布局.LayoutParams的XML属性栏目,

    而android:gravity是直接在布局类的XML属性栏目。

    这里估计跟“自定义View”那部分内容有点关系,看这里。

    好像绕得有点远了,这些暂时不用深究吧。

    其实关键还是“android:layout_gravity”属性

    例如一个按钮,里面的内容因为已经限制在一个框框里面了,

    那么android:gravity一般也就是往中间发散的九个方向放了。

    而android:layout_gravity因为涉及到布局与控件各种相互关系,

    因此设置之前,要仔细考虑才行。

    那么平时用的,也就是LinearLayout、RelativeLayout、FrameLayout三种,

    把上面那个“简单的做法”的LinearLayout替换为其它两个,

    就是发现RelativeLayout对android:layout_gravity不起作用。

    查资料也是,LinearLayout和FrameLayout支持android:layout_gravity。

    “android:layout_gravity”属性怎么用

    先是代码:

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:background="#666666"

    android:orientation="vertical">

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:padding="2dip"

    android:text="Linear Layout - horizontal, gravity=center"

    android:textColor="#FFFFFF" />

    android:layout_width="fill_parent"

    android:layout_height="0dip"

    android:layout_weight="1"

    android:background="#EEEEEE"

    android:gravity="center"

    android:orientation="horizontal">

    android:id="@+id/Button01"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_gravity="top"

    android:text="top">

    android:id="@+id/Button02"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_gravity="center"

    android:text="center">

    android:id="@+id/Button03"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_gravity="bottom"

    android:text="bottom">

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:padding="2dip"

    android:text="Linear Layout - vertical, gravity=center"

    android:textColor="#FFFFFF" />

    android:layout_width="fill_parent"

    android:layout_height="0dip"

    android:layout_weight="1"

    android:background="#DDDDDD"

    android:gravity="center"

    android:orientation="vertical">

    android:id="@+id/Button04"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_gravity="left"

    android:text="left">

    android:id="@+id/Button05"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_gravity="center"

    android:text="center">

    android:id="@+id/Button06"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_gravity="right"

    android:text="right">

    显示出来是这个样子:

    c8a00330a1b1?nomobile=yes

    记住这些

    对于horizontal的LinearLayout,把android:layout_gravity设为top、center、bottom、center_vertical才有意义;

    对于vertical 的LinearLayout,把android:layout_gravity设为left、center、right、center_horizontal才有意义;

    RelativeLayout对android:layout_gravity不起作用

    center已经包含了center_vertical和center_horizontal两种意义了,用的时候不要忘了

    参考资料

    展开全文
  • LinearLayout:线性布局 一、线性布局介绍 新建一个工程 然后我们默认的布局,是相对布局, 相对布局的意思是我的控件可以在里面随意放置 那如果把这个RelativeLayout 改了呢? 不用这相对布局,而是...

           

      

    LinearLayout:线性布局

    一、线性布局介绍

    新建一个工程

     然后我们默认的布局,是相对布局,

     相对布局的意思是我的控件可以在里面随意放置

     那如果把这个RelativeLayout 改了呢?

    不用这相对布局,而是用线性布局,

    我们把代码都删掉

    然后直接把 RelativeLayout 改成        LinearLayout

     现在我这个布局已经好了

    我们再往里面添加东西,发现只能在一条横线上添加

    如果我一个横线放满了,放下一排可以吗?

    不可以

     这就是线性布局,之能在横线上存放。

    那我现在希望变成竖线存放怎么办呢?

    这就涉及到了  LinearLayout的属性  orientation

    orientation:布局中组件的排列方式,有horizontal(水平,默认),vertical(竖直)两种方式

          

      我们修改一下代码

    然后现在我们想把      hello  world 右面放也不行,只能跑到后面来

     这就是我们说的线性布局,要么是横线,要么是竖线,只有这两种情况

          

    二、线性布局weight属性

    该属性是用来等比例划分区域,

    最简单的用法:要等比划分,分谁,谁为0,weight按比例即可

        

      我们开始的代码

    在里面来一个线性布局 ,

    因为它的父控件是一个相对布局,所以可以用        android:layout_centerInParent="true"

     运行一下

     框架

     现在的代码,结构

    默认是水平方向上排布控件

    加一句    android:orientation="horizontal"

     

     运行结果

     然后把    android:layout_height="35dp"      改成     android:layout_height="70dp"

    然后再加一句              android:orientation="vertical"     把他切成两部分

     

    运行一下

     同样的右面的也加上EditText

     运行一下

     他会随着输入的增长而增长

     三、线性布局微调参数gravity

    gravity:控制组件所包含的子元素的对齐方式,可多个组合,如(left|buttom)

    Layout_gravity:控制该组件在父容器里的对齐方式

        

       线性布局如何微调子控件的位置,现在我们想让账号和密码居中

     运行一下,在竖直方向上居中了。但没有在水平方向上居中

     然后用一个管道可以继续来         android:gravity="center|center_horizontal"

     运行结果

     现在完整的代码

     我们观察一下textview 的大小有多大,给他来个颜色

    加上    android:background="#778899"            android:background="#223344"

    运行一下

             说明刚才我们够居中了,android:gravity="centerl"      已经能让“账号”     “密码”居中了

    把android:gravity="center|center_horizontal"       改成      android:gravity="center"

            只是水平方向上的大小,没有充满父控件

    那把android:layout_width="wrap_content"        改成       android:layout_width="match_parent"

     运行一下

    ( 然后把密码的颜色也改成灰色)

    如果我们在加一个id号        第48行

     

     

     运行一下

     然后把        android:layout_height="70dp"    改成        android:layout_height="100dp"

    在加上一个

     <EditText
                     android:layout_weight="1"
                     android:layout_width="wrap_content"
                     android:layout_height="0dp"               
                     />    

     运行一下

     可以把颜色都去掉,

    再把        android:layout_width="wrap_content"       改成 android:layout_width="match_parent"

     可以加个背景

     然后把

    换成

     运行一下

    如果你感觉屏幕太方块了 

    把        android:layout_width="match_parent" 改成        android:layout_width="400dp"        第9行

     运行一下

         

    四、线性布局divider

    该属性用于为LinearLayout设置分割线图片,通过showDividers来设置分割线的所在位置,有四个可选值none,middle,begining,end;当然你还可以通过

            divider 为LinearLayout设置分割线的图片

            showDividers 设置分割线所在的位置,有四个可选值:none,middle,begining,end

            dividerPadding   设置分割线的padding

    先给res   下面的   drawable

     

    然后选择shape

    系统分配的代码

    我们选择它是一条线,

    然后再加上颜色            <stroke android:color="#000000"/>

    比如我现在要给 “账号”        “密码”        “ID号”   下面画一条线

    加上一句        android:divider="@drawable/fenge"        第20行

     运行结果

    id下面没有线,android:showDividers="middle"        改成        android:showDividers="middle|end"

     运行结果

     如果后面也想加个横线

     运行结果

     现在完整的代码

     

     

    展开全文
  • 如果是ViewGroup布局组件如LinearLayout,则为设置它内部view组件的对齐方式。 layout_gravity是设置自身相当于父容器的对齐方式。组件设置layout_gravity属性,则表示这个组件相对于父容器的对齐方式。 【注意1】...

    一、gravity和layout_gravity相同处
    两者都是设置对齐方式的属性。内部的属性值相同。

    二、gravity和layout_gravity的不同处
    gravity是设置自身内部元素的对齐方式。如果是view组件,则是设置内部文字的对齐方式。如果是ViewGroup布局组件如LinearLayout,则为设置它内部view组件的对齐方式。
    layout_gravity是设置自身相当于父容器的对齐方式。组件设置layout_gravity属性,则表示这个组件相对于父容器的对齐方式。

    【注意1】如果要用gravity属性,组件的layout_width和layout_height不能设置为wrap_content。此时设置的gravity属性没有效果,因为组件包裹着内容,无论设置什么,也都不能有改变

    【注意2】外部viewGroup类布局组件设置gravity为center,内部组件例如TextView,在外部布局的中间位置。TextView没有设置gravity属性,则自身内部的文字在开始位置。
    在这里插入图片描述

    【注意3】对于layout_gravity不是什么情况下都能设置的属性,而且在不同的viewGroup中产生的效果也会不同(如LinearLayout)。

    【注意4】对于LinertLaout布局:组件layout_gravity的center值和orientation的定位方向有关。

    当设置为horizontal时,LinearLayout中的组件按照横排排列。当设置layout_gravity属性为center值时,组件就在垂直方向处于中间位置,即最中间的横排。
    在这里插入图片描述

    当设置为vertical时,LinearLayout中的组件按照竖排排列。当设置layout_gravity属性为center值时,组件就在水平方向处于中间位置,即最中间的一列。
    在这里插入图片描述

    展开全文
  • Android Studio布局详解布局是什么?布局的分类布局的创建和加载布局详解一级目录二级目录三级目录 布局是什么? 布局就是界面的框架,类似一个可以放很多控件的容器 如下图为布局和控件的关系,布局里可嵌套布局和...

    布局是什么?

    布局就是界面的框架,类似一个可以放很多控件的容器

    • 如下图为布局和控件的关系,布局里可嵌套布局和控件,但控件里不可放布局

    在这里插入图片描述

    布局的分类

    传统布局:

    • 线性布局LinearLayout
    • 相对布局RelativeLayout
    • 帧布局 FrameLayout (又:层/框架布局)
    • 百分比布局PercentFrameLayout/PercentRelativeLayout
    • 表格布局TableLayout
    • 网格布局GridLayout
    • 绝对布局AbsoluteLayout

    新型布局:

    • 约束布局ConstraintLayout

    布局的创建和加载

    如图在project视图模式下新建,命名test1
    在这里插入图片描述

    然后在MainActivity中加载
    在这里插入图片描述

    8种布局详解

    线性布局LinearLayout

    线性布局是常用一种布局,按垂直(vertical)或者水平(horizontal)方向来布局控件

    • orientation 决定控件排列方向,在线性布局中必不可少
    • gravity 决定内部控件对齐方式,同时也存在于相对布局和表格布局(注意与layout_gravity区分)
    • center 居中显示,当LinearLayout线性方向为垂直方向时,center表示水平居中,但是并不能垂直居中,此时等同于center_horizontal的作用;同样当线性方向为水平方向时,center表示垂直居中,等同于center_vertical。
    • layout_weight 表示权重,分配当前控件在剩余空间占比大小。要注意,如果在水平方向分配权重,就把width设置为0dp,如果在竖直方向分配权重,就把height设置为0dp (见书中代码演示)

    示例:

    <?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="vertical">
        <Button
            android:id="@+id/button1"
            android:layout_width="100dp"
            android:layout_height="0dp"
            android:text="Button1"
            android:layout_weight="3"/>
        <Button
            android:id="@+id/button2"
            android:layout_width="100dp"
            android:layout_height="0dp"
            android:text="Button2"
            android:layout_gravity="right"
            android:layout_weight="1"/>
        <Button
            android:id="@+id/button3"
            android:layout_width="100dp"
            android:layout_height="0dp"
            android:text="Button3"
            android:layout_weight="2"/>
    </LinearLayout>
    

    在这里插入图片描述

    相对布局RelativeLayout

    相对布局可以让子控件相对于兄弟控件或父控件进行布局
    可以设置子控件相对于兄弟控件或父控件进行上下左右对齐
    相对于某个视图或者父布局的位置 ,该布局下的子视图可以重叠参照物

    RelativeLayout能替换一些嵌套视图,不需要LinearLayout那么复杂

    归纳一下RelativeLayout中子控件常用属性:

    来自:https://blog.csdn.net/wenzhi20102321/article/details/52677595

    相对布局的属性有点相近,使用的时候要细心

    1、相对于父控件

    用法例如 android:layout_alignParentTop="true"

    • android:layout_alignParentTop 控件的顶部与父控件的顶部对齐
    • android:layout_alignParentBottom 控件的底部与父控件的底部对齐
    • android:layout_alignParentLeft 控件的左部与父控件的左部对齐
    • android:layout_alignParentRight 控件的右部与父控件的右部对齐

    2、相对给定id控件

    用法例如:android:layout_above=“@id/**”

    • android:layout_above 控件的底部置于给定ID的控件之上
    • android:layout_below 控件的底部置于给定ID的控件之下
    • android:layout_toLeftOf 控件的右边缘与给定ID的控件左边缘对齐
    • android:layout_toRightOf 控件的左边缘与给定ID的控件右边缘对齐
    • android:layout_alignBaseline 控件的baseline与给定ID的baseline对齐
    • android:layout_alignTop 控件的顶部边缘与给定ID的顶部边缘对齐
    • android:layout_alignBottom 控件的底部边缘与给定ID的底部边缘对齐
    • android:layout_alignLeft 控件的左边缘与给定ID的左边缘对齐
    • android:layout_alignRight 控件的右边缘与给定ID的右边缘对齐

    3、居中

    用法例如:android:layout_centerInParent=“true”

    • android:layout_centerHorizontal 水平居中
    • android:layout_centerVertical 垂直居中
    • android:layout_centerInParent 父控件的中央

    示例:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <Button
            android:id="@+id/button1"
            android:text="button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
    
            android:layout_marginTop="200dp"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true" />
        <Button
            android:id="@+id/button2"
            android:text="button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toLeftOf="@+id/button1"
            android:layout_marginBottom="100dp"
            android:layout_alignBottom="@id/button1" />
        <Button
            android:id="@+id/button3"
            android:text="button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/button1"
            android:layout_alignBottom="@+id/button1" />
        <Button
            android:id="@+id/button4"
            android:text="button4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/button1"
            android:layout_alignLeft="@+id/button1"/>
    </RelativeLayout>
    

    在这里插入图片描述

    帧布局 FrameLayout

    相当于把控件从界面左上角一层层叠加覆盖,可用于地图等功能
    示例:

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <Button
            android:id="@+id/button1"
            android:layout_width="300dp"
            android:layout_height="300dp"
            android:text="Button1"
            android:background="@color/colorPrimary"
            android:visibility="visible" />
        <Button
            android:id="@+id/button2"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:text="Button2"
            android:background="@color/colorAccent"
            android:visibility="visible" />
        <Button
            android:id="@+id/button3"
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:text="Button3"
            android:visibility="visible" />
    </FrameLayout>
    

    在这里插入图片描述

    百分比布局

    在《第一行代码》中app/build.gradle添加的依赖为:

    compile 'com.android.support:percent:24.2.1'
    

    这对于当前版本来说行不通,com.android.support:percent 很久以前就迁移到了 androidx.percentlayout:percentlayout,故不支持原库。
    需改为以下内容:

    implementation 'androidx.percentlayout:percentlayout:1.0.0'
    

    在这里插入图片描述

    注意在修改依赖后要更新,点击sync now
    在这里插入图片描述
    若无法更新,可试用如下方法:
    在这里插入图片描述
    进入project structure,如图添加
    在这里插入图片描述

    添加成功后,在修改布局时编辑器会像其他布局一样自动填充,书中示例可如下实现:

     <?xml version="1.0" encoding="utf-8"?>
    <androidx.percentlayout.widget.PercentFrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        xmlns:app="http://schemas.android.com/apk/res-auto">
        <Button
            android:id="@+id/button1"
            android:layout_gravity="left|top"
            android:text="button1"
            android:textAllCaps="false"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            app:layout_heightPercent="50%"
            app:layout_widthPercent="50%"/>
        <Button
            android:id="@+id/button2"
            android:layout_gravity="right|top"
            android:text="button2"
            android:textAllCaps="false"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            app:layout_heightPercent="50%"
            app:layout_widthPercent="50%" />
        <Button
            android:id="@+id/button3"
            android:layout_gravity="left|bottom"
            android:text="button3"
            android:textAllCaps="false"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            app:layout_heightPercent="50%"
            app:layout_widthPercent="50%" />
        <Button
            android:id="@+id/button4"
            android:text="button4"
            android:layout_gravity="right|bottom"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            app:layout_widthPercent="50%"
            app:layout_heightPercent="50%"
            />
    </androidx.percentlayout.widget.PercentFrameLayout>
    
    

    在这里插入图片描述
    注意layout_gravitylayout_heightPercent的作用。

    【若在添加依赖时仍报错不能成功,可尝试以下方法,一条一条试一遍,别问我怎么知道的呜呜呜呜。。。】

    1. 检查是不是网不好!!!
      网络的解决方法可参考这个博文:

    https://blog.csdn.net/liosen/article/details/81211982

    1. clean Project或者清缓存

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1. 本质解决参考:

    androidx 和 android support库不能共存:

    https://www.jianshu.com/p/4b723bb0a542?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

    android androidX迁移库:

    https://www.cnblogs.com/loaderman/p/12108359.html

    表格布局TableLayout

    表格布局是线性布局的子类
    TableRow设置行,列数由TableRow中的子控件决定(直接在TableLayout中添加子控件会占据整个一行)

    TableLayout常用属性:

    参考链接:https://blog.csdn.net/wenzhi20102321/article/details/52677595

    • android:shrinkColumns:设置可收缩的列,内容过多就收缩显示到第二行
    • android:stretchColumns:设置可伸展的列,将空白区域填充满整个列
    • android:collapseColumns:设置要隐藏的列

    列的索引从0开始,shrinkColumnsstretchColumns可以同时设置。

    子控件常用属性:

    • android:layout_column:第几列
    • android:layout_span:占据列数

    示例:

    <?xml version="1.0" encoding="utf-8"?>
    <TableLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/tableRow1"
            >
            <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button1"
                android:layout_column="0"/>
            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button2"
                android:layout_column="1"/>
        </TableRow>
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/tableRow2">
            <Button
                android:id="@+id/button3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button3"
                android:layout_column="1"
                />
            <Button
                android:id="@+id/button4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button4"
                android:layout_column="2"/>
        </TableRow>
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/tableRow3">
            <Button
                android:id="@+id/button5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button5"
                android:layout_column="2"/>
        </TableRow>
    </TableLayout>
    

    在这里插入图片描述

    网格布局GridLayout

    网格布局与表格布局大同小异
    不同的是可以设置容器中组件的对齐方式
    容器中的组件可以跨多行也可以跨多列,而TableLayout是直接占一行
    排列方式android:orientation ,竖直vertical或者水平horizontal
    对齐方式 android:layout_gravity,center,left,right,buttom

    设置组件位于几行几列(从0排):

    • 组件行数: android:layout_row = “0”
    • 组件列数: android:layout_column = “2”

    设置组件横跨几行几列:

    • 纵向横跨行: android:layout_rowSpan = “2”
    • 横向横跨列: android:layout_columnSpan = “3”

    示例:

    <?xml version="1.0" encoding="utf-8"?>
    <GridLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:columnCount="4"
        android:orientation="horizontal">
        <Button
            android:layout_column="3"
            android:text="/" />
        <Button
            android:text="1" />
        <Button
            android:text="2" />
        <Button
            android:text="3" />
        <Button
            android:text="*" />
        <Button
            android:text="4" />
        <Button
            android:text="5" />
        <Button
            android:text="6" />
        <Button
            android:text="-" />
        <Button
            android:text="7" />
        <Button
            android:text="8" />
        <Button
            android:text="9" />
        <Button
            android:text="+"
            android:layout_gravity="fill"
            android:layout_rowSpan="3"
            />
        <Button
            android:text="0"
            android:layout_gravity="fill"
            android:layout_columnSpan="2"
            />
        <Button
            android:text="00" />
        <Button
            android:text="="
            android:layout_gravity="fill"
            android:layout_columnSpan="3"/>
    
    </GridLayout>
    
    

    在这里插入图片描述

    绝对布局AbsoluteLayout

    绝对布局在开发过程中绝对不推荐使用
    绝对布局也叫坐标布局,指定控件的绝对位置。
    子视图通过属性android:layout_xandroid:layout_y 来确定当前视图在屏幕上的位置,x,y就是坐标点 x轴的值和y轴的值
    直观性强,但是手机屏幕尺寸差别较大,适应性差

    (但其他博主有说过,在其他的开发领域,绝对布局还是有点用的,比如机顶盒开发中的界面设计emm)

    约束布局ConstraintLayout

    新增功能,其与其他七个的区别在于界面编写方式

    • 传统:编写xml代码
    • 新型:可视化方式(约束布局即是)

    详见郭霖大佬讲解:

    https://guolin.blog.csdn.net/article/details/53122387

    展开全文
  • Android约束布局用法

    2021-06-02 16:34:12
    约束布局用法当线性布局用下面我们来实现一个常用的底部导航栏,5个导航栏xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent">...
  • GridLayout本章以一个小的实现示例讲述: 实现效果如图: 代码实现: xmlns:tools=...android:columnC...
  • 遇到问题:父布局为RelativeLayout,textview设置layout_gravity="center_vertical" ,但是该textview仍然位于布局的顶部,而非居中。处理方法:textview的android:layout_height="wrap_content"改为android:layout_...
  • Android Studio的视图有layout_gravity属性和gravity属性。其中gravity是“重力”的意思,在此引申为与力有关的“对齐方式”。layout_gravity是设置视图对于其parent(父视图)的对齐方式,而gravity是设置视图显示...
  • 1.首先来看看Android:layout_gravityandroid:gravity的使用区别。android:gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,an...
  • Android UI布局

    2021-06-04 08:06:14
    用户界面的基本构建块是 View对象,它是从View类创建的,占据屏幕上的矩形区域,负责绘图和事件处理。...在第三级,我们有不同的布局,它们是ViewGroup类的子类,典型的布局定义了Android用户界面...
  • android :gravity =\"center\" B. android :layout _gravity=\"center\" C. android更多相关问题She found travelling ______ and was quite ______ in it. [ ]A. interested; interesting B. in...
  • Android布局

    2021-06-02 14:33:58
    LinearLayout - 线性布局线性布局,最常用的布局之一,所有包含在线性布局里的控件在线性方向上依次排列。注意:线性布局不会换行,当组件...属性和属性值:android:orientation = "horizontal" // 水平android:orie...
  • 相信很多学习了android的人,都知道布局中存在两个很相似的属性:android :layout_gravityandroid:gravity。一般的都知道,android :layout_gravity是表示该组件在父控件中的位置android:gravity是表示该组件的子...
  • Android 百分比布局(支持AndroidX)

    千次阅读 2021-01-21 15:29:16
    Android 百分比布局添加依赖代码使用 添加依赖 implementation ‘com.android.support:percent:25.2.0’ 我的项目是AndroidX的,依然用这个依赖哦~ 代码使用 <androidx.percentlayout.widget.PercentFrameLayout...
  • 我想在Android布局下面的rtl(从右到左)就像在父布局中使用layoutDirection =“rtl”(但它仅适用于4.2和更高版本)以及任何方式使其明确地从右向左.这是主要的android项目布局的一部分,用于Android中的Preference ...
  • 优缺点优点极大程度减少布局层级可以实现一些其他布局管理器不能实现的样式缺点每个被参考的控件都需要设置id以下所有描述都是针对ConstraintLayout下子控件的,通用的属性在此不再叙述,只针对ConstraintLayout独有...
  • 在代码中设置布局居中,翻看api可以...下面将在代码中实现类似布局中layout_gravity,layout_margin的方法。可以通过设置view里面的LayoutParams 设置,而这个LayoutParams是根据该view在不同的GroupView而不同的...
  • Android布局重叠

    2021-06-02 18:51:08
    当我查看片段ExpandableListView将重叠以上ListView(图片)Android布局重叠我想要ExpandableListView应该出现后ListView。截图: xmlns:tools="http://schemas.android.com/tools"xmlns:card_view=...
  • 我有一个ImageView和一个ImageButton.我们让他们在一个水平的布局旁边彼此相邻.我正在努力使图像在屏幕...android:id="@+id/linearLayout1"android:layout_width="match_parent"android:layout_height="wrap_content...
  • RelativeLayout用到的一些重要的属性第一类:属性值为true或falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:...
  • 线性布局是将放入其中的组件按照垂直或水平方向来布局。每一行或每一列中只能放...在线性布局管理器中,常用的属性包括android:orientation、android:gravityandroid:layout_width、android:layout_height、andro...
  • LinearLayout和RelativeLayout共有属性:java代码中通过btn1关联次控件android:id="@+id/btn1"控件宽度android:layout_width="80px" //"80dip"或"80dp"android:layout_width =“wrap_content”android:layout_width ...
  • 学习了一段时间的安卓,现在开始操作一个小例子——计算器。相信我们的手机中都有计算器这个软件,但是你知道它是怎么进行具体操作的吗?其实我暂时也还不知道,现在就简单的布局来做一个小总结。对于一个软件,漂亮...
  • 文章目录
  • Android两种主要布局

    2021-05-28 08:43:43
    LinearLayout:一、定义:线性布局,在此布局中的子控件都是按水平或垂直方式进行排列二、属性:1.android:orientation控件的方向,值为vertical(垂直)、horizontal(水平),默认为水平方向2.Layout_width/height:...
  • RelativeLayout中设置居中的方法有两个,一个是android:gravity="center_horizontal"还有一个是 android:layout_centerHorizontal="true"那么他们有啥区别呢?首先:android:gravity="center_horizontal"android:...
  • 我有以下布局:xmlns:tools=...
  • Gravity版本:Android 4.0 r1结构继承关系public class Gravity extends Objectjava.lang.Objectandroid.view.Gravity类概述用来在一个更大容器中布置对象的标准常量和工具。常量public static final intAXIS_CLIP...
  • Android使用指定的View开发弹窗功能Android开发中进程会使用到我们的AlertDialog,但是比较可惜的是我们的Android原生的AlertDialog的效果又比较的简陋,这个时候我们就需要自定义的View去显示了。OverviewAndroid ...
  • Android UI工具包提供了一些布局管理器,它们使用起来相当容易,而且,大多数的时候,你只需要使用它们最基本的特征来实现UI。执着于基本特征的使用对于创建UI来说,往往不是最高效的。一个常见的例子就是滥用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 104,550
精华内容 41,820
关键字:

安卓gravity布局