布局
布局(layout)可定义应用中的界面结构(例如 Activity 的界面结构),布局中所有元素使用 View(可见) 和 ViewGroup(不可见) 的层次结构, View 对象成为微件,可以是众多子类之一,比如 Button、TextView ViewGroup 对象称为布局,可以是提供布局的众多类型之一,比如 LinearLayout、ConstraintLayout
六大布局
Android六大基本布局分别是:
- 线性布局:LinearLayout
- 表格布局:TableLayout
- 相对布局:RelativeLayout
- 层布局:FrameLayout
- 绝对布局:AbsoluteLayout
- 网格布局:GridLayout
其中,表格布局是线性布局的子类。网格布局是android 4.0后新增的布局。 在手机程序设计中,绝对布局基本上不用,用得相对较多的是线性布局和相对布局。
声明布局
方式一:使用 xml
<TextView
android:id="@+id/textview_first"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_first_fragment"
app:layout_constraintBottom_toTopOf="@id/button_first"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button_first"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/next"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/textview_first" />
@+id 和 @id : @+id :在 R.java 文件里新增一个 id,如果之前已经存在了,则覆盖 @id :直接引用 R.java 文件存在的 id 资源,如果不存在,则报错。
注意:同一布局中 id 不能重名,不同布局可以
方式二:使用编程的方式
创建 View 对象或者 ViewGroup 对象,并操作其属性。运行时才实例化。
TextView textview = (TextView) findViewById(R.id.textview_first)
如何使用
在 res/layout/ 目录下,存放写的布局文件后缀 .xml 当编译应用时,系统将每个 xml 布局文件编译为 View 资源,在 Activity.onCreate() 回调内,调用 setContentView()
参考资料
https://blog.csdn.net/qq_40205116/article/details/88418781
|