Android UI布局和事件处理小结

时间:2022-12-15 13:08:05

Android布局总结:

1.      布局有直线布局、相对布局、绝对布局、帧布局、表格布局、其他复合布局等。最经常用到的是相对布局,通过相对布局对其他布局进行整合可以得到不同的布局。大部分时候,使用绝对布局不是一个好思路,因为运行Adroid应用的手机往往千差万别,因此屏幕大小、分辨率都存在较大差异,使用绝对布局需要兼顾不同屏幕大小、分辨率问题。针对一个布局用到许多属性,比如:格局、样式、背景颜色、覆盖程度、字体设置等。

2.      之前对FrameLayou的理解是,把FrameLayout当作画布canvas,固定从屏幕的左上角开始填充图片,文字等。今天做示例,原来可以利用android:layout_gravity来设置位置的,并且查阅了 android:layout_gravityandroid:gravity的区别:前者是本元素对父元素的重力方向,后者是本元素所有子元素的重力方向。

 

UI事件处理总结:

1.      onClick()来自View.OnClickListener它会被调用当点击这个Item(在触摸模式),或者当光标聚集在这个Item上时按下确认,导航键,或者轨迹球。

onLongClick()来自View.OnLongClickListener.  它会被调用当长按这个Item(在触摸模式),或者当光标聚集在这个Item上时长按确认,导航键,或者轨迹球。

onFocusChange()来自View.OnFocusChangeListener它会被调用当光标移到或离开这个ItemonKey()来自View.OnKeyListener..它会被调用,当光标移到这个Item,按下和释放一个按键的时候。

onTouch()来自View.OnTouchListener.它会被调用,在这个Item的范围内点触的时候。onCreateContextMenu() 它会被调用,当上下文菜单被建立时(由于持续的长按”)  

2.      种实现方法:一是定义一个OnXXXListener类的实例,并使用setOnXXXListener等绑定监听器;二是用Activity去实现OnXXXListener接口,并作为它的一部分,这样会更方便,省去了加载额外的类和对象的时间。

对于支持触摸屏的手机,可以设定触摸模式的UI,可以使用isInTouchMode()来获得触摸模式的状态。

UI处理的另一个重点是焦点的设定及其切换。焦点设置:通过setFocusable或者setFocusableInTouchMode设置可以接受焦点,通过isFocusableisFocusableInTouchMode获取是否可以接受焦点;焦点切换:编写XML布局文件的nextFocusDown等属性设置。