android中的布局模式以及android中的一些常用快捷键
布局就是把界面中的控件按照某种规律摆放到指定的位置,主要是为了解决应用程序在不同手机中的显示问题。Android实现布局有两种方式:(1)代码;(2)xml配置文件,都是放在res/layout目录***:也可以同时使用xml和代码。
1、线性布局(LinearLayout):线性布局会将其中的控件一个接一个排列,可以横排也可以竖排。
常用属性:(1)设置排列方向:orientation="vertical"(垂直排列),orientation="horizontal"(水平排列);(2)设置组件的对齐方式:gravity=“center”(居中),gravity=“center|left”(居中并靠左)。
android:gravity和android:layout_gravity的区别:前者是针对控件里的元素来说的,用来控制元素在该控件里的显示位置;后者是针对控件本身而言,用来控制该控件所在父元素的位置。
<!--<Button-->
<!--android:layout_width="0dp"-->
<!--android:layout_height="match_parent"-->
<!--android:layout_weight="2"-->
<!--android:text="按钮1"/>-->
<!--<Button-->
<!--android:layout_width="0dp"-->
<!--android:layout_height="match_parent"-->
<!--android:layout_weight="1"-->
<!--android:text="按钮2"/>-->
<!--<Button-->
<!--android:layout_width="0dp"-->
<!--android:layout_height="match_parent"-->
<!--android:layout_weight="2"-->
<!--android:text="按钮3"/>-->
效果图:
2、帧布局(FrameLayout):类似于PS中图层的概念,为每个加入其中的组件创建单独的帧,看上去像是组件叠加到一起
<!--<ImageView-->
<!--android:layout_width="match_parent"-->
<!--android:background="@drawable/a3"-->
<!--android:layout_height="match_parent" />-->
<!--<ImageView-->
<!--android:layout_width="60dp"-->
<!--android:background="@drawable/a2"-->
<!--android:layout_gravity="center"-->
<!--android:layout_height="60dp" />-->
效果图:
3、 相对布局(RelativeLayout):相对布局窗口内子组件的位置总是相对兄弟组件、父容器来决定的,因此叫相对布局;如果A组件位置是由B组件的位置决定的,Android要求先定B组件,再定义A组件;每个控件使用LayoutParams规定的参数来定义相对位置,LayoutParams的参数一类的值为true或false,另一类是其他控件的ID,其中参数为Boolean型的是相对于父元素的属性,如android:layout_alignParentRight=”true”,参数为ID型的是相对于指定元素(根据ID指定)的属性。
@+id和@id的区别:@+id/x1(添加新ID)、@id/x1(引用此ID)
<Button
android:layout_width="60dp"
android:background="@color/red"
android:layout_height="30dp" />
<Button
android:layout_width="60dp"
android:background="@color/orange"
android:layout_centerHorizontal="true"
android:layout_height="30dp" />
<Button
android:layout_width="60dp"
android:background="@color/yellow"
android:layout_alignParentRight="true"
android:layout_height="30dp" />
<Button
android:layout_width="60dp"
android:layout_toLeftOf="@id/main_btn_blue"
android:layout_margin="30dp"
android:background="@color/green"
android:layout_centerInParent="true"
android:layout_height="30dp" />
<Button
android:layout_width="60dp"
android:id="@+id/main_btn_blue"
android:background="@color/blue"
android:layout_centerInParent="true"
android:layout_height="30dp" />
<Button
android:layout_width="60dp"
android:layout_toRightOf="@id/main_btn_blue"
android:layout_margin="30dp"
android:background="@color/indianred"
android:layout_centerInParent="true"
android:layout_height="30dp" />
<Button
android:layout_width="match_parent"
android:background="@color/violet"
android:layout_alignParentBottom="true"
android:layout_height="30dp" />
4、网格布局(GridLayout):该布局使用虚线将布局划分为行、列和单元格,也支持一个控件在行、列上都有交错排列;于HTML中的table非常类似;4.0以上的版本可以直接使用,2.X的版本需要添加一个支持包。
GridLayout布局相关属性:rowCount(总行数)、columnCount(总列数)
GridLayout中子控件相关属性:layout_gravity=”fill_horizontal”(水平填充)、layout_gravity=”fill_vertical”(垂直填充),主要用于跨行或跨列的时候。
Space标签的作用:挡住控件,让其不超出网格的范围。
<!--<Button-->
<!--android:layout_width="60dp"-->
<!--android:background="@color/red"-->
<!--android:text="1"-->
<!--android:layout_height="60dp" />-->
<!--<Button-->
<!--android:layout_width="60dp"-->
<!--android:layout_centerHorizontal="true"-->
<!--android:background="@color/darkgrey"-->
<!--android:text="2"-->
<!--android:layout_height="60dp" />-->
<!--<Button-->
<!--android:layout_width="60dp"-->
<!--android:id="@+id/main_btn_black"-->
<!--android:layout_centerInParent="true"-->
<!--android:background="@color/black"-->
<!--android:text="3"-->
<!--android:layout_height="60dp" />-->
<!--<Button-->
<!--android:layout_width="60dp"-->
<!--android:layout_alignParentRight="true"-->
<!--android:background="@color/blue"-->
<!--android:text="4"-->
<!--android:layout_rowSpan="2"-->
<!--android:layout_gravity="fill_vertical"-->
<!--android:layout_height="60dp" />-->
<!--<Button-->
<!--android:layout_width="60dp"-->
<!--android:text="5"-->
<!--android:layout_centerInParent="true"-->
<!--android:layout_toLeftOf="@id/main_btn_black"-->
<!--android:background="@color/mediumvioletred"-->
<!--android:layout_columnSpan="2"-->
<!--android:layout_gravity="fill_horizontal"-->
<!--android:layout_height="60dp" />-->
<!--<Button-->
<!--android:layout_width="60dp"-->
<!--android:text="6"-->
<!--android:layout_centerInParent="true"-->
<!--android:layout_toRightOf="@id/main_btn_black"-->
<!--android:background="@color/indigo"-->
<!--android:layout_height="60dp" />-->
<!--<android.support.v4.widget.Space />-->
一些常用的快捷键:
Ctrl+N 查找类
Ctrl+Shift+Space 自动补全代码
Ctrl+Alt+Space 代码提示
Ctrl+P 方法参数提示
代码标签输入完成后,按Tab,生成代码。
Ctrl+W 选中代码,连续按会有其他效果
选中文本,按Alt+F3 ,逐个往下查找相同文本,并高亮显示
Ctrl+Up/Down 光标跳转到第一行或最后一行下
Ctrl+[或]可以跳到大括号的开头结尾
推荐阅读
-
android中的布局模式以及android中的一些常用快捷键
-
Android开发中关于获取当前Activity的一些思考
-
Android 中RecyclerView多种item布局的写法(头布局+脚布局)
-
浅谈Android开发中ListView控件性能的一些优化方法
-
android中UIColletionView瀑布流布局实现思路以及封装的实现
-
Android Listview中显示不同的视图布局详解及实例代码
-
Android中activity的启动模式
-
Android中关于相对布局RelativeLayout的技巧汇总
-
Android中ActionBar以及menu的代码设置样式
-
Android中的常用控件之进度条(ProgressBar)