Android移动应用开发 布局

本文详细介绍了如何在Android的MainActivity.java中设置布局文件,包括使用setContentView方法加载布局,以及在XML中设计布局的注意事项。内容涵盖布局文件的Text和Design模式的区别,线性布局、表格布局的属性及其用法,如layout_gravity、orientation、layout_column和layout_rowSpan等。此外,还讨论了RadioGroup和RadioButton的使用,以及如何在EditText中设置输入提示和密码类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 如何在MainActivity.java中设置activity的布局文件

答:setContentView(R.layout.activity_main);参数为布局文件的R引用

  1. 设计布局文件的Design和Text模式什么区别?

答:Text模式中可以直接修改xml代码,在Design模式中可以直接拖动控件,比较直观但不够精确

  1. layout_toEndOf同layout_toRightOf什么区别?另一对对应的属性是什么?什么区别?它们后面的值中的id前为什么有+?

答:对于API 17以前的应用,使用layout_toRightOf,以后的版本使用layout_toEndOf,另一对为layout_toLeftOf和layout_toStartOf,它们后面的id前的+表示引用其他控件

  1. 如何在工程中修改工程的最小版本?

答:在Module:app的build.gradle文件中修改defaultConfig中的minSdkVersion的值

  1. 水平居中和垂直居中的属性是什么?

答:分别是:android:layout_centerHorizontal和android:layout_centerVertical

  1. 如何新建布局文件?布局文件的文件名有什么要求?

答:菜单File中New,选择Layout resource file,在弹出的对话框中进行设置,布局文件的文件名必须为小写字母、数字、_,这三种符号

  1. 线性布局中子控件的对齐是哪个属性?可取什么值?

答:由layout_gravity,它的值可以是left、center、right

  1. 线性布局的方向由哪个属性决定?可取什么值?默认值是什么?

答:线性布局的方向有orientation属性决定,可取horizontal及vertical,默认为horizontal

  1. 控件的id可以相同吗?

答:在同一个布局文件中的id不可以相同,但在不同布局文件中的控件id可以相同

  1. 线性布局能嵌套使用吗?怎么用?

答:可以嵌套使用,在其中嵌套其他的布局标签即可

  1. 表格布局中的表行由哪个标签确定?

答:TableRow标签表示表行

  1. TableRow的宽度和高度属性是什么?默认值是什么?

答:宽度为layout_width,默认值为match_parent,高度为layout_height,默认为wrap_content

  1. 如何确定子控件所在的列?

答:TableRow中的控件在哪一列由android:layout_column指定,该值从0开始

  1. stretchColumns属性什么意思?

答:android:stretchColumns="1"是设置 TableLayout所有行的第1列为扩展列。也就是说如果每行都有三列的话,剩余的空间由第1列补齐,代码如下:

<?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"

    android:stretchColumns="1">

    <TableRow>

        <!-- 从第二列开始填写 -->

        <TextView

            android:layout_column="1"

            android:text="Open..."

            android:padding="3dip" />

        <!-- 字符四周到TextView的 空白边的大小 -->

        <!-- 设置TextView内字符的对其方式 此为右对齐 与layout_gravity的区别-->

        <TextView

            android:text="Ctrl-O"

            android:gravity="right"

            android:padding="3dip" />

    </TableRow>

    <TableRow>

        <TextView

            android:layout_column="1"

            android:text="Save..."

            android:padding="3dip" />

        <TextView

            android:text="Ctrl-S"

            android:gravity="right"

            android:padding="3dip" />

    </TableRow>

    <TableRow>

        <TextView

            android:layout_column="1"

            android:text="Save As..."

            android:padding="3dip" />

        <TextView

            android:text="Ctrl-Shift-S"

            android:gravity="right"

            android:padding="3dip" />

    </TableRow>

    <!-- 加一个分割线 线的高度为2 View是TextView的父类颜色  -->

    <View

        android:layout_height="2dip"

        android:background="#FF909090" />

    <TableRow>

        <TextView

            android:text="X"

            android:padding="3dip" />

        <TextView

            android:text="Import..."

            android:padding="3dip" />

    </TableRow>

    <TableRow>

        <TextView

            android:text="X"

            android:padding="3dip" />

        <TextView

            android:text="Export..."

            android:padding="3dip" />

        <TextView

            android:text="Ctrl-E"

            android:gravity="right"

            android:padding="3dip" />

    </TableRow>

    <View

        android:layout_height="2dip"

        android:background="#FF909090" />

    <TableRow>

        <TextView

            android:layout_column="1"

            android:text="Quit"

            android:padding="3dip" />

    </TableRow>

</TableLayout>

  1. 子控件如何跨列?能跨行吗?

答:layout_rowSpan表示该子控件占用几行,layout_columnSpan表示子控件占用几列

  1. 如何修改子控件上的文字及id?几种方式?

答:可以在子控件上双击进行修改,还可以在Text模式下修改

  1. 如何跨列?需要哪两个属性配合?怎么配合?

答:设置layout_columnSpan为需跨越的列,并将layout_gravity的值设置为fill

  1. 如何跨行?

答:设置layout_rowSpan为需跨越的列,并将layout_gravity的值设置为fill

  1. 如何设置总列数?

答:设置GridLayout的columnCount的值

  1. 子控件的位置是怎么确定的?

答:由layout_width及layout_column来确定子控件的位置

  1. RadioGroup是什么?其什么作用?它的父类是哪个?默认方向是什么?怎么改掉?

答:该类是用于放置无线按钮(单选按钮)的View,在RadioGroup中的单选按钮只能有一个被选中,该类的父类为LinearLayout,默认方向为垂直排列,设置它的orientation为horizontal即可改为水平

  1. RadioButton是什么?为什么要加入RadioGroup中?如何默认选中?它的id有什么特别的用处?

答:该类为单选按钮,只有加入RadioGroup中的单选按钮之间才是互斥的,设置它的checked属性为true,即可使得该按钮为默认选中。如果RadioButton没有id则不能进行互斥选择

  1. 怎么将MainActivity的布局改掉?

答:修改setContentView方法中的参数

  1. 如何加入输入的提示信息?

答:添加hint属性

  1. 如何将EditText指定为输入密码类型的数据?

答:添加inputType属性,其值设为“textPassword”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值