常规UI编程 | 青训营笔记

45 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第2天

1.UI组件

UI:User Interface

常规UI组件

组件Java ClassPackage
文本组件TextViewandroid.widget.TextView
图片组件ImageViewandroid.widget.ImageView
按钮组件Buttonandroid.widget.Button
输入框组件EditTextandroid.widget.EditText
复选框组件CheckBoxandroid.widget.CheckBox
单选按钮RadioButtonandroid.widget.RadioButton
.........

常规UI组件大多由Android Framework中的android.widget这个package提供

高级UI组件

组件Java Class
滑动组件ScrollView
列表组件ListView/RecyclerView
下拉刷新组件PullToRefresh
分页组件ViewPager
布局组件LinearLayout/RealtiveLayout/...
......

常规UI组件大多数View,高级UI组件大多是ViewGroup,比常规UI组件有多的功能

2.常用布局

LinearLayout

线性布局LinearLayout主要以水平或垂直方式来排列界面中的控件。并将控件排列到一条直线上。

线性布局是一种简单基础的布局。线性布局的基础格式如下

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:paddingLeft="16dp"
     android:paddingRight="16dp"
     android:orientation="vertical" > 
 ​
     <EditText        
         android:layout_width="match_parent"        
         android:layout_height="wrap_content" />   
 ​
     <EditText        
         android:layout_width="match_parent"      
         android:layout_height="wrap_content" />   
 ​
     <EditText       
         android:layout_width="match_parent"     
         android:layout_height="0dp"     
         android:layout_weight="1"      
         android:gravity="top" />   
 ​
     <Button      
         android:layout_width="100dp"       
         android:layout_height="wrap_content"     
         android:layout_gravity="right" />
 </LinearLayout>

RelativeLayout

相对布局RelativeLayout可以通过相对定位的方式让控件出现在布局中,可以相对于父布局定位,也可以相对于其他控件定位

相对于控件进行定位的方式

 上:android:layout_above="@id/控件id"
 下:android:layout_below="@id/控件id"
 左:android:layout_toLeftOf="@id/控件id"
 右:android:layout_toRightOf="@id/控件id"

FrameLayout

FrameLayout又称作帧布局,这种布局方式默认放置在布局左上角,无序考虑其他的控件。

 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="@android:color/white">
 ​
     <TextView
         android:layout_width="300dp"
         android:layout_height="300dp"
         android:gravity="center"
         android:background="@android:color/holo_blue_bright"
         android:text="我是第一层"/>
 ​
     <TextView
         android:layout_width="150dp"
         android:layout_height="140dp"
         android:gravity="center"
         android:background="@android:color/holo_green_light"
         android:text="我是第二层"/>
 ​
 </FrameLayout>

ConstraintLayout

ConstraintLayout约束布局是目前Android Studio创建一个Activity的默认根布局,使用前需要添加依赖才能使用,因为是后来出现的布局方式,要兼容之前的版本,所以以引入的方式使用。

每个控件至少要两个约束条件,一个水平约束,一个垂直约束。