2014-04-25 2 views
0

아이콘에 대한 알림 개수 표시에 문제가 있습니다. 오른쪽 상단 모서리에 표시되어야합니다.CodaNameone에 알림 횟수 표시

패딩과 여백을 0으로 만들고 단추로 이미지를 설정 한 처음 만든 단추입니다.

FlowLayout buttonLayout = new FlowLayout(); 
buttonLayout.setAlign(Component.CENTER); 
buttonLayout.setValign(Component.TOP); 
Container buttonContainer = new Container(buttonLayout); 
buttonContainer.setUIID("IconContainer"); 
Button button = new Button(buttonImage); 
button.setUIID("ButtonLabelNew"); 
buttonContainer.addComponent(button); 

는 통지 회수 용기를 만들어 지금

BoxLayout iconLayout = new BoxLayout(BoxLayout.Y_AXIS); 
Container iconContainer = new Container(iconLayout); 
Label iconText= new Label(buttonText); 
iconText.setUIID("Label"); 
iconContainer.addComponent(0,itemContainer); 
iconContainer.addComponent(1,iconText); 

결국 그리드를 생성 버튼 아래의 텍스트를 추가

FlowLayout countLayout = new FlowLayout(); 
countLayout.setAlign(Component.RIGHT); 
countLayout.setValign(Component.TOP); 
Container countContainer = new Container(countLayout); 
Label countLabel = new Label(displayCount); 
countLabel.setUIID("backgroundLabel"); 
countContainer.addComponent(countLabel); 

/*Adding Button and Notification Count to ItemContainer*/ 
Container itemContainer = new Container(new LayeredLayout()); 
itemContainer.addComponent(buttonContainer); 
itemContainer.addComponent(countContainer); 

버튼에 그것을 놓고 그리드 아이콘 컨테이너를 추가

GridLayout gridLayout = new GridLayout(numRows, MAX_ITEMS_PER_ROW); 
Container gridContainer = new Container(gridLayout); 
gridContainer.setUIID("LogoContainer"); 
for (int indx = 0; indx < itemContainers.length; indx++) 
{ 
    gridContainer.addComponent(itemContainers[indx]); 
} 
approvalsWorklist.addComponent(BorderLayout.CENTER,gridContainer); 
+1

여기서 어떤 문제가 발생하지 않습니까? 이것은 대부분 올바른 것으로 보입니다. 당신이 얻고있는 것에 대한 스크린 샷을 제공하고 원하는 최종 결과와 다른 이유를 설명 할 수 있습니까? –

+0

Shai 여기에 이미지를 게시했습니다. (https://www.dropbox.com/s/6wep74gq4oxoe60/grid.png) – user3304328

+0

문제는 정확한 오른쪽 구석에 알림 개수가 표시되지 않는 것입니다. 여기에 여백이 있습니다. – user3304328

답변

0

이미지는 오른쪽에 있지만 구성 요소는 아이콘보다 큽니다. 따라서 이미지의 크기가 조정 된 위치에 이미지가 표시됩니다.

해결 방법에는 두 가지가 있습니다.

  1. countContainer에 패딩 또는 마진 때문에 카운트 이격 된 우측 위치에 배치 될 설정. 이것은 균일하지 않은 아이콘 크기를 기반으로 조정해야한다는 단점이 있지만 상대적으로 간단한 방법입니다.

  2. 구성 요소가 모두 동일한 크기를 갖는 GridLayout에 있다고 가정합니다. FlowLayout 또는 절대 중심 BorderLayout에있는 격자 레이아웃의 각 요소를 래핑하여 내부적으로 원하는 크기를 차지한 다음 배지가 아이콘 가장자리 내에 정확하게 배치됩니다.

+0

나는이 방법을 시도했지만 작동하지 않았다. 결국 나는 그리드가 사용되는 방식을 바 꾸었습니다. 그리드에서 사용할 아이콘과 텍스트를 결합하는 대신, 한 줄의 아이콘과 다음 텍스트 행을 사용하여 그리드를 사용했습니다. – user3304328