public static ComboViewer createComboViewer(Composite parent) {
CCombo combo = new CCombo(parent, SWT.BORDER);
combo.setTextLimit(2);
combo.addVerifyListener(new UpperCaseKeyListener());
ComboViewer viewer = new ComboViewer(combo);
viewer.setContentProvider(ArrayContentProvider.getInstance());
viewer.setLabelProvider(new CustomLabelProvider());
String[] strings = {"AB","CD","EF","GH","IJ"};
viewer.getCCombo().addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent keyEvent) {
String key = viewer.getCCombo().getText();
System.out.println(key);
String[] items = viewer.getCCombo().getItems();
if (!key.equals("") && key.length()==2) {
for (int i=0;i<strings.length;i++) {
if (strings[i].contains(key)) {
final ISelection selection = new StructuredSelection(strings[i]);
viewer.setSelection(selection);
}
}
}
}
});
双方内容都不在屏幕之内。我不是为什么?我甚至指定左右16dp(8dp + 8dp)的边距。但我认为它没有成功。 为什么它表现得很奇怪?是因为我在Android版本4.2.1上测试? 或者有任何理由?
OS- 4.2.1
我在5.1.1上检查过它工作正常。
答案 0 :(得分:1)
输出就是这样,因为:
android:orientation
中未指定ConstraintLayout
(默认为"horizontal"
)
android:layout_width
值设置为"wrap_content"
三种解决方案:
将android:orientation
中的ConstraintLayout
更改为"vertical"
,并将android:layout_width
和TextView
的{{1}}设置为EditText
}
将您的两个观看次数match_parent
设置为android:layout_width
,然后使用0dp
。
(最佳解决方案)删除android:weight
,将TextView
的{{1}}设置为android:layout_width
。然后在EditText
上使用match_parent
,如下所示:
android:hint