Jetpack:003-布局中组件的对齐方式


我们在上一章回中介绍了Jetpack中的页面和布局,本章回中将介绍 布局中组件的对齐方式。闲话休提,让我们一起Talk Android Jetpack吧

1. 概念介绍

我们在本章回中介绍的对齐方式是组件在布局中的排列方式,常见的是居中对齐,它表示组件位于布局的中间位置。

此外,我们介绍对齐主要是指在ColumnRow这两个布局中的对齐方式。其它布局中的对齐与此类似,只是具体的细节不同而已。

2. 使用方法

我们使用的Column和Row布局都提供了相关的参数来设置位于它们中的组件对齐方式,接下来我们分别介绍这两种布局中对齐方式。

2.1 行布局中的对齐方式

  • verticalAlignment参数:它表示组件在垂直方向的对齐方式.它的值都包含start,top,end,bottom和center这些关键字,分别表示起点,顶部,终点,底部和居中对齐。这些对齐方式容易理解,大家可以自行修改代码来体验一下。
  • horizontalArrangement参数:它表示组件在水平方向的对齐方式;它的值比较特殊,不容易理解,大家可以参考官方给的图示,详细如下:
    在这里插入图片描述

2.2 列布局中对齐方式

  • horizontalAlignment参数:它表示组件在水平方向的对齐方式;它的值都包含start,top,end,bottom和center这些关键字,分别表示起点,顶部,终点,底部和居中对齐。这些对齐方式容易理解,大家可以自行修改代码来体验一下。
  • verticalArrangement参数:它表示组件在垂直方向的对齐方式.它的值比较特殊,不容易理解,大家可以参考官方给的图示,详细如下:
    在这里插入图片描述

3. 示例代码

Column(
    modifier = Modifier
        .fillMaxHeight()
        .fillMaxWidth(),
    horizontalAlignment = Alignment.CenterHorizontally,
    //列中元素的对齐方式,需要设置fillMaxHeight,不然只有内容大小,无法调节元素对齐
    verticalArrangement = Arrangement.Center
) {
    for (item in list) {
        //控制每个list选项的边距,长宽度,边框和背景颜色
        Surface(
            modifier = Modifier
                .fillMaxWidth() //相当于match_parent,默认是wrap_content
                .height(48.dp)
                .padding(vertical = 8.dp, horizontal = 16.dp)
                .border(width = 3.dp, color = Color.Yellow,)
        ) {
            Row (
                verticalAlignment = Alignment.CenterVertically,
                //行中元素的对齐方式,需要设置fillMaxWidth,不然只有内容大小,无法调节元素对齐
                horizontalArrangement = Arrangement.SpaceBetween,
                modifier = Modifier
                    .padding(start = 24.dp)
                    .align(alignment = Alignment.CenterHorizontally)
                    ){
                Text(text = item)
                Button(onClick = { Log.d("ex001","button is clicked")}) {
                    Text(text = "Button")
                }
            }
        }
    }
}

上面的示例代码中包含一个列和一个行,它的运行效果和上一章回的相同。我建议大家自己动手去修改一下行和列的对齐方式,这样可以亲自体验一下不同的对齐效果。

此外,还需要把行或者列的长度设置为最大值,不然没有对齐效果,详细内容可以参考代码中的注释。

4. 内容总结

最后,我们对本章回中的内容做一个总结:

  • 对齐就是指布局中组件的排列方式;
  • 行和列布局都支持对齐功能,它们提供水平和垂直两个方向的对齐功能;
  • 对于xxxAlignment相关的对齐方式相对容易理解;
  • 对于xxxArrangement相关的对齐方式不好理解,可以参考效果图;

看官们,关于Jetpack中组件在布局中的对齐方式就介绍到这里,欢迎大家在评论区交流与讨论!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值