2013-06-02 4 views
0

목록이 포함 된 LWUIT 양식을 가지고 있으며, 목록에 항목이 추가되었으며, 항목 자체는 문자열입니다 (문장으로 만들려고합니다).스크롤하지 않습니다.

반환

내 간단한 문제는 최종 사용자가 전체 문장 (문자열)을 볼 수 있다는 것입니다. 나는 아래의 방법을 시도했지만 스크롤은 움직이지 않을 것이다.

모두 form.setScrollableY(true), form.setScrollabelX(true)form.setScrollable(true)입니다.

코드 모든

import javax.microedition.midlet.*; 
import com.sun.lwuit.layouts.*; 
import com.sun.lwuit.*; 

public class HelloLWUITMidlet3 extends MIDlet 
{ 

    public void startApp() 
    { 
    com.sun.lwuit.Display.init(this); 

    final com.sun.lwuit.Form form = new com.sun.lwuit.Form(""); 

    final com.sun.lwuit.List l = new com.sun.lwuit.List(); 

    l.addItem("MY favourite Science is computer Sciences"); 

    l.addItem("MY favourite computer Science subject is programming"); 

    l.addItem("MY favourite programming language is java "); 

    form.setScrollableY(true); 

    form.setScrollableX(true); 

    form.addComponent(l); 

    form.show(); 
    } 

    public void pauseApp() 
    { 

    } 

    public void destroyApp(boolean unconditional) 
    { 

    } 
} 

답변

1

첫째을하고, 내용을 읽을 수평 앞뒤로 스크롤하는 것은 정말 나쁜 UX입니다. 이 대답은 수직 스크롤링 문제 만 해결합니다.

코드에있는 문제는 스크롤 할 수있는 (목록) 을 다른 스크롤 가능한 (양식) 안에 추가한다는 것입니다. 어떤 구성 요소가 스크롤링을 처리해야하는지 명확하게 알 수 없으므로 예기치 않은 결과가 발생합니다. 입니다. 이는 양식에서 BorderLayout을 사용하고 목록을 가운데에 배치하여 으로 수정할 수 있습니다.

... 
form.setScrollable(false); 
form.setLayout(new BorderLayout()); 
form.addComponent(BorderLayout.CENTER, l); 

... 

이 수직 스크롤을 가능하게하지만, 수평 스크롤하지 않습니다 작동합니다. 스크롤에 대한

명확한 설명 : 스크롤에

LWUIT의 접근 방식 은 포커스 요소가 화면에서 컨테이너 스크롤 때문에 즉, 초점을 기반으로합니다. 이로 인해 LWUIT가 화면보다 큰 스크롤 요소를 지원하지 않으므로 이라는 결과를 초래하므로 목록을 가로로 스크롤 할 수 없게됩니다. (출처 : LWUIT mini FAQ)

제안 :

최대 소자 높이 목록의 구성 요소의 높이로한다. 이 은 폴더 세부 정보 목록의 연락처 목록과 같이 특정 방식으로 에 "미리 포맷 된"데이터를 표시하기에 적합하도록 List 구성 요소를 만듭니다. 가변 길이의 텍스트 조각을 스택하려는 경우
은 BoxLayoutY가있는 양식을 사용하고 다양한 TextAreas에 텍스트를 넣어야합니다.

void startApp() { 
    Display.init() 
    final Form form = new Form("Title"); 

    addItem(form, "String.."); 
    // as many times as you like 
    addItem(form, "String.."); 

    form.setLayout(new BoxLayout(BoxLayout.Y_AXIS)); 
    form.setScrollableY(true); 
    form.show() 
} 


void addItem(Form f, String s) { 
    TextArea t = new TextArea(s); 
    t.setGrowByContent(true); 
    f.addComponent(t); 
} 
관련 문제