私は奇妙な問題を抱えています - CN1にコーディングミスやバグがあるかどうかはわかりません。CodenameOneでは、チェックボックスが選択されていないが選択されているように見えるのはなぜですか?
基本的には、CheckBoxオブジェクトの行を作成し、それらをX-Scrollableであるコンテナに配置します。選択されていないアイテムをクリックしてドラッグすると、「エラスティック」エフェクトが元の状態に戻ります。選択されているように見えますが、選択したものとしてコードが記録されません。それが選択されていないとき、コンソール出力で、単語「選択は」フィールドが選択されているとき、大文字と小文字されていることを https://youtu.be/EtputE1kjyo
注:
は、問題の次のビデオをご覧ください。フォーカスにも同じです(フォーカスに選択エラーがないように、setFocusable()が必要に応じて動作していたかどうかを判断するために出力にフォーカスを追加しました)。ここは、チェックボックスの作成コードです:
cb = new CheckBox(getCacheableImageMaxHeight(mod.getIconFile(),moduleImageHeight));
cb.setName(mod.getModuleID());
cb.setToggle(true);
cb.setUIID("ModuleButton");
cb.setFocusable(false);
cb.setScrollVisible(false);
cb.setTextPosition(Component.BOTTOM);
cb.setCloudDestinationProperty(cb.getName());
//actionlistener added for debugging only
final CheckBox cbFinal = cb;
final String modName = mod.getDisplayName();
cb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
System.out.println(modName+", "+(cbFinal.isSelected()?"SELECTED":"selected") + ", " + (cbFinal.hasFocus()?"FOCUS":"focus"));
}
});
c.addComponent(cb);
UPDATE:私はここに戦争における2つの「状態」がありますが実現しました: トグルボタンが(私は今、彼らは私ので、ちょうどチェックボックスじゃない実現します残念ながら、 "押した"状態と "選択した"状態は同じ外観をしているので、私のユーザは自分が考えていることを意味します。setToggle(true)は、ドラッグ操作中に「押されて」いるだけで何かを選択しました。
- 最初のボタンが押されたが、(バグ)が選択されていません。
- 2番目のボタンが正常に選択され、バグが表示されません。
- 3番目のボタンは興味深いですが、それを選択してからドラッグして放して、選択されて押し出されるようにしました。
のでへの質問の変更:はすでに(押された状態は、ボタンが解放された後に立ち往生)このような状況のためのオープンなバグがありそうであれば、今後の修正や、今の回避策はありますか?
'CheckBox'が' ToggleButton'として動作するように設定されているので、スクロールするためにドラッグするのが少し長すぎると思います。 – Diamond