Android 中布局方式:
1、 LinearLayout(线性布局)
线性布局是Android开发中最常见的一种布局方式,它是按照垂直或者水平方向来布局,通过“android:orientation”属性可以设置线性布局的方向。属性值有垂直(vertical)和水平(horizontal)两种。
常用的属性:
android:orientation:可以设置布局的方向
android:gravity:用来控制组件的对齐方式
layout_weight:控制各个组件在布局中的相对大小
2、 RelativeLayout (相对布局)
相对布局是按照组件之间的相对位置来布局,比如在某个组件的左边,右边,上面和下面等。
3、 FramLayout(帧布局)
帧布局是从屏幕的左上角(0,0)坐标开始布局,多个组件层叠排列,第一个添加的组件放到最底层,最后添加到框架中的视图显示在最上面。上一层的会覆盖下一层的控件。
4、 TableLayout(表格布局)
表格布局是一个ViewGroup以表格显示它的子视图(view)元素,即行和列标识一个视图的位置。
表格布局常用的属性如下:
android:collapseColumns:隐藏指定的列
android:shrinkColumns:收缩指定的列以适合屏幕,不会挤出屏幕
android:stretchColumns:尽量把指定的列填充空白部分
android:layout_column:控件放在指定的列
android:layout_span:该控件所跨越的列数
5、 AbsoluteLayout(绝对布局)
绝对布局通过指定子组件的确切X,Y坐标来确定组件的位置,在Android2.0 API文档中标明该类已经过期,可以使用FrameLayout或者RelativeLayout来代替。
长按注册监听事件registerForContextMenu(View view);:
该方法是Context的方法,主要用于长按事件处理,其源代码如下:
public void registerForContextMenu(View view) {
view.setOnCreateContextMenuListener(this);
}
其中setOnCreateContextMenuListener方法:public void setOnCreateContextMenuListener(OnCreateContextMenuListener l) {
if (!isLongClickable()) {
setLongClickable(true);
}
getListenerInfo().mOnCreateContextMenuListener = l;
}
registerForContextMenu(View view)
覆写context menu的两个回调函数onCreateContextMenu()和onContextItemSelected(),以响应context menu点击事件;
这是官方文档给出的实现floating context menu的标准步骤;
需要说明的是这种方法实现的context menu是一个listview,可能还需要进一步自定义以实现你想要的布局;on UI 3.1基于Android5.0
然后需要侦听到WebView文本选中的事件,以在选中文字后,调用Activity.openContextMenu()弹出自定义的floatingcontext menu;
webview并没有提供文本选中的listener,所以可能得需要继承WebView,覆写它的某些方法.