PhoneScreenVerticalManager

PhoneScreenVerticalManager

我正在制作一个应用程序,该应用程序在传入呼叫上具有侦听器,然后添加字段直到电话屏幕。
但是,我似乎无法真正控制我使用的labelfields或PhoneScreenVerticalManager的宽度。
如果我尝试在PhoneScreenVerticalManager上设置边框或背景,则什么也不会发生。
在labelfield构造函数中,USE_ALL_WIDTH似乎也没有任何改变。
而且让labelfields左对齐我也无法工作(在labelfield构造函数中尝试了DrawStyle.Left)。

这是我的代码:

public Incoming(int callId) {
     this.callId = callId;
     PhoneCall call = Phone.getCall(callId);
  String number = call.getPhoneNumber();
  Vector contact = ContactUtil.getContactByPhone(number);
        screenModel = new ScreenModel(callId);
        phoneScreenPortrait = screenModel.getPhoneScreen(PhoneScreen.PORTRAIT, PhoneScreen.INCOMING);
        final XYRect rect = screenModel.getDimensions(PhoneScreen.PORTRAIT, PhoneScreen.INCOMING);
 PhoneScreenVerticalManager manager = new PhoneScreenVerticalManager()
         {

          public void paint(Graphics g) {
                 g.setColor(Color.BLACK);
                 g.setBackgroundColor(Color.WHITE);
                 g.clear();
                 super.paint(g);
             }

          protected void sublayout(int width, int height)
             {
                 super.sublayout(rect.width, height);
                 super.setExtent(rect.width, height);
             }

         };

         manager.setBackground(BackgroundFactory.createSolidBackground(Color.RED));
         manager.setBorder(BorderFactory.createSimpleBorder(new XYEdges(BORDER_PADDING, BORDER_PADDING, BORDER_PADDING, BORDER_PADDING), Border.STYLE_SOLID));

         String s = res.getString(FOUND_IN_CONTACTS);
         LabelField header = new LabelField(s, LabelField.USE_ALL_WIDTH)
         {
          protected void layout(int width, int height)
             {
                 super.layout(rect.width, height);
                 setExtent(rect.width, height);
             }

          public void paint(Graphics g) {
                 g.setColor(Color.BLACK);
                 g.setBackgroundColor(Color.WHITE);
                 g.clear();
                 super.paint(g);
             }
         };
         header.setBackground(BackgroundFactory.createSolidBackground(Color.WHITE));
         manager.add(header);
         LabelField label = new LabelField(contact.firstElement().toString(), LabelField.USE_ALL_WIDTH)
         {
          protected void layout(int width, int height)
             {
                 super.layout(rect.width, height);
                 setExtent(rect.width, height);
             }

          public void paint(Graphics g) {
                 g.setColor(Color.BLACK);
                 g.setBackgroundColor(Color.WHITE);
                 g.clear();
                 super.paint(g);
             }

         };
         label.setBackground(BackgroundFactory.createSolidBackground(Color.WHITE));
         manager.add(label);
         phoneScreenPortrait.add(manager);
        screenModel.sendAllDataToScreen();
}


任何想法将不胜感激!

谢谢

最佳答案

尽管电话屏幕管理器是从字段管理器派生的,但它不支持所有字段管理器属性。

所以解决方案是设置普通的现场管理员,然后将其添加到电话屏幕管理员

07-27 13:43