많은 시간이 지나면 지금 채팅 UI를 확인하고 있습니다. 관리자가 사용하는 스티커를 숨기고 보여 주면서 얻었습니다.
![enter image description here](https://i.stack.imgur.com/pKVYh.jpg)
코드를 다음과 같이
VerticalFieldManager emojiiVerticalScroll = new VerticalFieldManager(USE_ALL_WIDTH);
VerticalFieldManager stickerhorizontalScroll = new VerticalFieldManager(USE_ALL_WIDTH | VERTICAL_SCROLL | VERTICAL_SCROLLBAR) {
protected void sublayout(int maxWidth, int maxHeight) {
setExtent(maxWidth, 250);
super.sublayout(maxWidth, 250);
}
};
emojiiBitmapField2 = new BitmapField(emojii1, Field.FIELD_HCENTER | Field.FOCUSABLE) {
protected void drawFocus(Graphics graphics, boolean on) {
graphics.setBackgroundColor(0xc4c4c4);
super.drawFocus(graphics, on);
};
protected boolean navigationClick(int status, int time) {
fieldChangeNotify(1);
return true;
};
};
Bitmap stickers = Bitmap.getBitmapResource("img/s0010.png");
stickers = bestFit(stickers, Display.getWidth()/3 - 60, Display.getHeight()/3, 0);
stikersField = new BitmapField(stickers, Field.FOCUSABLE | DrawStyle.RIGHT) {
protected void layout(int width, int height) {
setExtent(60, 60);
super.layout(60, 60);
}
protected void drawFocus(Graphics graphics, boolean on) {
graphics.setBackgroundColor(0xc4c4c4);
super.drawFocus(graphics, on);
}
protected boolean navigationClick(int status, int time) {
fieldChangeNotify(1);
return true;
}
};
가 로컬 저장소에서 모든 스티커를 확인하고 관리자로 추가 할 수 있습니다.
stickerhorizontalScroll.add(emojiiBitmapField2);
emojiiBitmapField2.setChangeListener(new FieldChangeListener() {
Row r;
public void fieldChanged(Field field, int context) {
openDatabse();
int i = field.getIndex() + 1;
try {
// 1. create a SQLite DB
// 3 insert a record
// 4 query the record
Statement st3 = db.createStatement("SELECT Name,ImageName FROM Smilies where id=" + i);
try {
st3.prepare();
} catch (Exception e) {
Dialog.alert("Exception" + e.getMessage());
}
Cursor c = st3.getCursor();
while (c.next()) {
r = c.getRow();
stickerImageName = r.getString(1);
}
st3.close();
closeDatabase();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
});
}
하단 관리자를 표시하거나 숨기려면 부울 변수를 사용하십시오.
stikersField.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
if (!option_sticker) {
try {
scrollToBottom();
ef.setFocus();
emojiiVerticalScroll.add(stickerhorizontalScroll);
} catch (Exception e) {
System.out.println(e.getMessage());
}
option_sticker = true;
setStatus(emojiiVerticalScroll);
} else {
option_sticker = false;
emojiiVerticalScroll.delete(stickerhorizontalScroll);
// setStatus(stickerVerticalScroll);
setStatus(emojiiVerticalScroll);
}
}
});
![enter image description here](https://i.stack.imgur.com/K2Tgq.jpg)
나는이 기능이 자신의 일부를 구현하고 다시 정확한 코딩 질문 올하려고 좋습니다. 화면 (또는 화면에 추가 된 관리자)을 제거하여 추가하여 항목을 숨기거나 표시합니다. 따라서이 화면에 ButtonField를 추가하고 ButtonField 변경 리스너가 추가 필드를 추가하게하십시오. –