设置监听器 - ZWeijian/FormView GitHub Wiki

设置单元格变化的监听器

        mFormView.setOnBoxChangeListener(new OnBoxChangeListener() {

            /**
             * 单元格的宽度权重发生变化
             *
             * @param box       单元格的数据
             * @param rowPos    单元格的行号
             * @param columnPos 单元格的列号
             */
            @Override
            public void onWeightChange(Box box, int rowPos, int columnPos) {
                
            }

            /**
             * 单元格进行合并或者拆分
             *
             * @param isExpand  true:格子合并  false:格子拆分
             * @param box       单元格的数据
             * @param rowPos    单元格的行号
             * @param columnPos 单元格的列号
             */
            @Override
            public void onBoxExpand(boolean isExpand, Box box, int rowPos, int columnPos) {
                
            }


            /**
             * 单元格进行加粗或者取消加粗
             *
             * @param isBold    true:字体加粗  false:字体取消加粗
             * @param box       单元格的数据
             * @param rowPos    单元格的行号
             * @param columnPos 单元格的列
             */
            @Override
            public void onBoxBold(boolean isBold, Box box, int rowPos, int columnPos) {
                
            }
        });

设置行变化的监听器

        mFormView.setOnRowChangeListener(new OnRowChangeListener() {

            /**
             * 增加某一行
             *
             * @param row         新增的行
             * @param rowPos      新增行的行号
             * @param totalRowNum 增加一行后的总行数
             */
            @Override
            public void onRowAdd(Row row, int rowPos, int totalRowNum) {
               
            }

            /**
             * 删除某一行
             *
             * @param row           删除的行
             * @param rowPos        删除行的行号
             * @param totalRowNum   删除一行后的总行数
             */
            @Override
            public void onRowDelete(Row row, int rowPos, int totalRowNum) {
              
            }


            /**
             * 平分某一行
             *
             * @param row    平分行的数据
             * @param rowPos 平分行的行号
             */
            @Override
            public void onRowDivideEqually(Row row, int rowPos) {
               
            }

            /**
             * 重置某一行
             *
             * @param row    重置行的数据
             * @param rowPos 重置行的行号
             */
            @Override
            public void onRowReset(Row row, int rowPos) {
               
            }
        });

设置列变化的监听器

        mFormView.setOnColumnChangeListener(new OnColumnChangeListener() {

            /**
             * 从columnPos开始,增加range列
             *
             * @param columnPos        增加列的开始位置
             * @param range            增加的列数
             * @param totalColumnNum   增加后的总列数
             */
            @Override
            public void onColumnAdd(int columnPos, int range, int totalColumnNum) {
               
            }

            /**
             * 从columnPos开始,删除range列
             *
             * @param deleteColumnList 删除列的数据
             * @param columnPos        删除列的开始位置
             * @param range            删除的列数
             * @param totalColumnNum   删除后的总列数
             */
            @Override
            public void onColumnDelete(ArrayList<ArrayList<Box>> deleteColumnList, int columnPos, int range, int totalColumnNum) {
               
            }
        });

设置菜单监听器

        mFormView.setOnMenuListener(new OnMenuListener() {

            /**
             * 用户长按单元格,需要打开单元格菜单
             *
             * @param box       选中单元格的数据
             * @param rowPos    选中单元格的行号
             * @param columnPos 选中单元格的列号
             * @param menu      推荐的菜单选项
             * @return true:使用自带的默认弹窗   false:使用你自己的弹窗
             */
            @Override
            public boolean onBoxMenu(Box box, final int rowPos, final int columnPos, String[] menu) {

                //return true 使用自带的默认弹窗
                //return false 使用你自己的弹窗
                return true;
            }


            /**
             * 用户点击列按钮,需要打开列菜单
             *
             * @param box              目标单元格的数据
             * @param rowPos           目标单元格的行号
             * @param columnPos        目标单元格的列号
             * @param totalColumnNum   可见列数
             * @param menu             推荐的菜单选项
             * @return true:使用自带的默认弹窗   false:使用你自己的弹窗
             */
            @Override
            public boolean onColumnMenu(Box box, final int rowPos, final int columnPos, final int totalColumnNum, String[] menu) {
             
                //return true 使用自带的默认弹窗
                //return false 使用你自己的弹窗
                return true;
            }

            /**
             * 用户点击行按钮,需要打开行菜单
             *
             * @param box           目标单元格的数据
             * @param rowPos        目标单元格的行号
             * @param columnPos     目标单元格的列号
             * @param totalRowNum   总行数
             * @param menu          推荐的菜单选项
             * @return true:使用自带的默认弹窗   false:使用你自己的弹窗
             */
            @Override
            public boolean onRowMenu(Box box, final int rowPos, int columnPos, int totalRowNum, String[] menu) {

                //return true 使用自带的默认弹窗
                //return false 使用你自己的弹窗
                return true;
            }
        });
⚠️ **GitHub.com Fallback** ⚠️