1、线性布局
LinearLayout,是非常常用的布局,对android:oritentaion指定方向就可以改变排列方式:水平或垂直。其中,android:layout_gravity是指控件在布局中的对齐方式。android:layout_weight可以让我们使用比例的方式来指定控件的大小,从而适应不同像素的手机。如果要在水平方向上按比例来布局,则最开始要在定义控件的长与宽的时候将宽设置为0dp。(设置要在水平方向上平分,则要将布局设为水平模式且控件的宽要赋值为0dp。)
2、相对布局
正如其名,他的布局方式在于看其他的控件,一个控件相对于另一个的位置。可以用android:layout_above,android:layout_toRightof,android:layout_below等等。
3、帧布局
不太常用,默认在布局的左上角,android:layout_gravity="right"指定布局居右对齐。
4、百分比布局
由于百分比布局不是内置在系统SDK中,所以需要在build.gradle添加百分比的依赖
implementation 'androidx.percentlayout:percentlayout:1.0.0’然后在布局里根据百分比来分配控件。
5、自定义一个标题栏布局
标题栏实质上是几个button控件和一个TextView控件。首先新建一个布局title.xml
,运用两个按钮键与一个TextView控件做标题栏,找到相应的图标做返回键与确认键。不管有多少布局需要标题栏,只需添加一行:include语句就可以了。之后让控件有相应事件。
先在MainActivity同一目录下创建一个TitleLayout继承LinearLayout,给按键设置点击事件。用到的控件的id是自定义控件时的ID。
然后在activity_main.xml添加下面几行。自定义包含点击事件的标题栏就建好了。
<com.example.buju.TitleLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
public class TitleLayout extends LinearLayout {
public TitleLayout(Context context, AttributeSet attrs){//重写LinearLayout里的构造函数
super(context,attrs);
LayoutInflater.from(context).inflate(R.layout.title,this);
//动态加载一个布局文件,第一个参数是要加载的布局文件的id,第二个参数是给加载好的布局再添加一个父布局
Button titleBack=findViewById(R.id.titlt_back);
Button titleYes=findViewById(R.id.title_yes);
titleBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((Activity)getContext()).finish();
}
});
titleYes.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "You click edit button say yes", Toast.LENGTH_SHORT).show();
}
});
}
}