#blackberry
#ежевика
Вопрос:
У меня есть сеточный контейнер, который состоит из двух кнопок. и я добавляю этот контейнер в форму. Когда я нажимаю на кнопку, она работает нормально, но когда я нажимаю за пределами кнопок, событие запускается теми кнопками, которые в данный момент находятся в фокусе.
GridFieldManager startStopButtonContainer = new GridFieldManager(2,Field.FIELD_HCENTER);
startStopButtonContainer.add(slideRestart);
startStopButtonContainer.add(slideStop);
add(startStopButtonContainer);
теперь я нажимаю на slideRestart, он работает нормально, но когда я нажимаю за пределами кнопки, тогда также происходит событие.
Пожалуйста, помогите мне …:)
Комментарии:
1. Являются ли кнопки slideRestart и slideStop пользовательскими?
2. да, это пользовательские кнопки. Я попробовал getfieldatlocation, но это не работает
3. Вы переопределяете TouchEvent ()? Если это так, убедитесь, что вы возвращаете false, когда вы ничего не делаете с касанием, иначе фокус не переместится
Ответ №1:
Добавьте nullfield в начале и в конце каждой строки GridFieldManager.И задает поле стиля.Non_FOCASABLE для этого nullfields.И установите фокус по умолчанию в поле кнопки.
Примечание: поля с нулевыми значениями должны покрывать оставшуюся часть GridFieldManager.
вы можете использовать
LabelField field = new LabelField(" ",Field.NON_FOCUSABLE)
{
protected void layout(int width, int height)
{
// TODO Auto-generated method stub
super.layout(width, height);
setExtent((Display.getWidth()-(buttonField.getPreferredWidth() buttonField.getPreferredWidth())/2, height);
}
};
как nullfield.