1.常見控件
屬性
match_parent 當前控件大小和父佈局的大小一樣
wrap_content 控件的大小能剛好包含裏面的內容
dp是一種屏幕密度無關的尺寸單位
文字大小要使用sp作爲單位,用戶修改完文字尺寸後,文字大小也會跟着變化
1.1TextView
android:gravity來指定文字對齊方式,可選值有top,bottom,start,end,center
1.2Button
Android會默認將按鈕上的英文字母轉換爲大寫,可以添加啊
aandroid:textAllCaps="false"這個屬性,保留原始文字內容
除了API方式來註冊監聽器,也可以使用實現接口的方式來進行註冊:
class MainActivity : AppCompatActivity(),View.OnClickListener {
override fun onClick( v : View?){
when(v?.id){
R.id.button ->{
//此處添加邏輯
}
}
}
}
1.3EditText
android:hint=“要隱藏提示的內容” 指定了一段提示性的文本
android:maxLine=“2” 指定EditText的最大行數爲兩行,EditTest不會繼續拉伸
1.4ImageView
android:src屬性給ImageView指定了一張圖片
也可以通過代碼動態地更改ImageView中的圖片:
class MainActivity : AppCompatActivity(),View.OnClinckListener{
...
override fun OnClick( v : View?){
when(v?.id){
R.id.button ->{
imageView.setImageResource(R.drawable.img_2)
}
}
}
}
1.5ProgressBar
android:visibility 可選參數有 visible , invisible 和 gone三個屬性
visible表示空間可見的
invisible表示控件不可見,但他仍然佔據着原來的位置和大小。
可以通過代碼實現動態修改,通過setVisibility()方法,允許傳入View.VISIBLE,VIEW.INVISIBLE,VIEW.GONE這三個值
也可以通過getVisibility()方法來判斷ProgressBar是否可見
可以給ProgressBar指定不同樣式:
style="?android:attr/progressBarStyleHorizontal"
android:max="100"
指定成水平進度條後,我們可以通過android:max屬性給進度條設置一個最大值,然後在代碼中動態地改變進度條的進度
progressBar.progressBar.progress+10
1.6AlertDialog
class MainActivity : AppCompatActivity(),View.OnClinckListener{
...
override fun OnClick( v : View?){
when(v?.id){
R.id.button ->{
AlertDialog.Builder(this).apply{
setTitle("This is Dialog")
setMessage("Something important.")
setCancelable(false)
setPositivebutton("OK"){
dialog,which ->
}
setNegativeButton("Cancel"){
dialog , which ->
}
show()
}
}
}
}
}
2.基本佈局
屬性
android:layout_gravity屬性,可以指定控件中的對齊方式
android:layout_weigh 屬性,可以劃分屏幕
2.1LinearLayout 線性佈局
可以通過android:orientation屬性來只當排列方式是vertical還是horizontal.
2.2RelativeLayout 相對佈局
相對父佈局進行定位
android:layout_alignParentLeft
android:layout_alignParentRight
android:layout_alignParentTop
android:layout_alignParentBottom
android:layout_centerInParent
相對其他控件進行定位
android:layout_toLeftOf
android:layout_toRightOf
android:layout_below
android:layout_above
相對其他控件對齊
android:layout_alignLeft
android:layout_alignRight
android:layout_alignTop
android:layout_alignBottom
2.3FrameLayout 幀佈局
3.自定義控件
- 在layout目錄下創建一個title.xml佈局
在MainActivity中將系統自帶的標題欄隱藏掉
supportActionBar?.hide()
在佈局中加入
<include layout="@layout/title" />
2.新建TitleLayout繼承自LinearLayout讓他成爲一個自定義標題欄控件
class TitleLayout(context : Context , attrs : AttributeSet) : LinearLayout(context , attrs){
init{
LayoutInflater.from(context).inflate(R.layout.title,this)
titleBack.setOnClickListener{
val activity = context as Activity
activity.finsh()
}
}
}
在佈局文件中加入
<com.example.uicustomviews.TitleLayout
android:layout_height="wrao_content"
android:layout_width="matcg_parent"
/>