2013-06-02 2 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 в с прокруткой основываются на Focus, а это означает, что контейнер свитка , потому что целенаправленный элемент из экрана. Это имеет значение , что LWUIT не поддерживает элементы прокрутки, превышающие экран, и, таким образом, , что ваш список не будет прокручиваться по горизонтали. (Источник: LWUIT mini FAQ)

Предложение:

Максимальная высота элемента берется в качестве компонента высоты в списке. Этот делает компонент «Список» достаточным для отображения данных, предварительно «форматированных» в определенным образом, например, списками контактов списка сведений о папке. Если вы хотите уложить фрагменты текста переменной длины, вы должны
использовать форму с BoxLayoutY и поместить свой текст в различные текстовые ресурсы.

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); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^