작은 응용 프로그램에서 작업 중이며이 부분에서 저를 곤란하게 만들었습니다. 이 페이지에는 listField
(스크린 샷의 버튼 위에 표시), 일부 버튼 및 일부 정적 인 editFields
이 있으며 스크롤하는 데 문제가 있습니다.목록 영역의 부분 사용자 정의
listField
은 5 개의 행 (스크린 샷에 2가 표시됨)을 표시하도록 제한하고 listField에 5 개 이상의 항목이있는 경우 전체 페이지를 스크롤하지 않고 스크롤 할 수 있도록하려고합니다. , 그냥 목록보기).
또 다른 문제는 editFields입니다. 많은 수의 텍스트 때문에 너무 커지면 화면이 사라질 것입니다. super(Manager.NO_VERTICAL_SCROLL);
을 호출하지 않으면 화면이 나타나지 않습니다. 이는 listField
에 필요합니다. 작업.
listField
의 완전한 사용자 지정 클래스를 구현하는 유일한 방법은이 문제입니까? 아니면 더 간단한 대안이 있습니까?
(스크린 샷 나는 이미지를 게시 할 수있는 충분한 담당자가 없기 때문에 imgur)에 퀸, http://imgur.com/RcfspQP
감사를
편집 :
public class TestScreen extends MainScreen{
public TestScreen(){
//Without this call to super (which turns off vertical scrolling) the program throws an IllegalStateException and won't open the screen
super(Manager.NO_VERTICAL_SCROLL);
//Create some managers to organize the different Fields
VerticalFieldManager verticalAllManager = new VerticalFieldManager();
VerticalFieldManager verticalInfoManager = new VerticalFieldManager();
//Going to use this to limit the number of rows the list will display
VerticalFieldManager verticalListManager = new VerticalFieldManager()
{
protected void sublayout(int width, int height) {
//Just test numbers
super.sublayout(width, 100);
}
};
HorizontalFieldManager horizontalButtonManager = new HorizontalFieldManager();
//Add a title bar
add(new LabelField("Choose the call you want to view", LabelField.FIELD_HCENTER));
add(new SeparatorField());
//Creates the SimpleList ListField
Manager mainManager = getMainManager();
final SimpleList listField = new SimpleList(mainManager);
//Add items to the listField
listField.add("Time: 12:30 | Date: 3:10:2014");
listField.add("Time: 03:13 | Date: 1:25:2013");
//Creates a button to use for selecting the desired call
final ButtonField selectCall = new ButtonField("Select Call", ButtonField.CONSUME_CLICK);
//Creates fields for all the required information (blank to start)
final BasicEditField timeField, dateField, numberField, nameField;
timeField = new BasicEditField("Call Time: ", "");
dateField = new BasicEditField("Call Date: ", "");
numberField = new BasicEditField("Call Number: ", "");
nameField = new BasicEditField("Caller Name: ", "");
//Creates a button that can be used to save changes
final ButtonField saveChanges = new ButtonField("Save Changes", ButtonField.CONSUME_CLICK);
final ButtonField deleteRow = new ButtonField("Delete Call", ButtonField.CONSUME_CLICK);
//Adds all the info fields into a vertical manager to organize them
verticalInfoManager.add(timeField);
verticalInfoManager.add(dateField);
verticalInfoManager.add(numberField);
verticalInfoManager.add(nameField);
//Adds the 3 buttons to a horizontal manager to lay them out in a row
horizontalButtonManager.add(selectCall);
horizontalButtonManager.add(saveChanges);
horizontalButtonManager.add(deleteRow);
//Add the horizontal button manager to the vertical page manager
verticalAllManager.add(horizontalButtonManager);
//Add the vertical info manager to the vertical page manager
verticalAllManager.add(verticalInfoManager);
//Add all the managers, under the page manager, to the page
add(verticalAllManager);
}
} 여기
내가 추가 한 샘플 페이지와 함께 다른 스크린 샷과 어떻게 일치합니까? ooks가 실행될 때
가장 큰 문제는 지금은 NO_VERTICAL_SCROLL을 사용하여 super()를 호출하면 전체 페이지의 스크롤이 꺼지는 것입니다. 이 호출이 없으면 정보 필드가 스크롤되며 간단히 말해서 (나는 그렇게 생각합니다) 멀리 스크롤하는 것을 막기 위해 verticalListManager 및 horizontalButtonManager를 배너에 추가해야합니다. 새로운 UI 컨트롤의 일부가 보이지 않는하지만
모두 수정되었습니다! 당신이 # 1에서 말한 것을 사용하고 목록을 일반 ListField로 바꿨습니다. 모든 것이 잘 작동합니다. 비 터치 스크린에서 작동하지 않는 UI에 관해서는, 회사에서 내부 용도로 사용하고 있으며 클라이언트는 모두 터치 스크린 전화를 사용하므로 비 터치 스크린은 문제가되지 않습니다. 나중 버전에서 더 많은 기능을 추가 할 예정이지만, 이것이 현재 필요한 모든 것입니다. 다시 한 번 도움을 주셔서 감사합니다. – Br0k3nL1m1ts