适用场景描述
当创建一个编辑界面,如果编辑界面中的内容比较多,或者试用的是笔记本且分辨率比较小,会出现部分编辑界面内容显示不全,且没有滚动条的情况。
如下图,【证书号】这一字段就没有显示全,且界面右侧没有滚动条进行调节。
代码实现
需要在对应的EditUI中重写三个方法,其中getVerticalScrollPolicy、getHorizontalScrollPolicy中返回的值是的静态常量,其对应的是相关的滚动机制,不过由于是反编译的代码,所以暂时不知道它们来自于哪个类。
/**
* 界面使用滚动条
*/
@Override
public boolean useScrollPane()
{
return true;
}
/**
* 纵向滚动机制设置
*/
@Override
public int getVerticalScrollPolicy()
{
return 20;
}
/**
* 横向滚动机制设置
*/
@Override
public int getHorizontalScrollPolicy() {
return 30;
}
跟代码的思路
那么我时如何发现这几个方法的?下面记录一下(试错的过程我就忽略了)
首先,在EAS系统中找到一张可以实现滚动的单据,并进入到对应的类中(EditUI)。
然后CTRL+O查找方法,既然是涉及到滚动的,则输入*scroll 进行搜索,再按一次Ctrl+O,查出所有基类满足条件的方法。
如下图,找到如下几个可疑的方法,分别进入,在方法前打上断点。
再然后,在自己写的EditUI中,以同样的方式找出对应的方法,并打上断点。
最后,运行程序,比较两个界面中对应的方法相关参数,看有何差别,便可得出结果。