我很好奇为什么会这样。我在设计器中添加了2个复选框
<CheckBox
android:id="@+id/checkBox5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="CheckBox" />
<CheckBox
android:id="@+id/checkBox4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="CheckBox" />
并在运行时添加了一些
for (String category : userData.getFilters().getCategories().keySet()) {
CheckBox box = new CheckBox(getContext()); // getActivity() gives same result, after all activit == context here
box.setTag(category);
box.setText(category);
categoriesContainer.addView(box);
}
他们看起来像这样:
为什么?
答案 0 :(得分:1)
首先,我认为您不是在创建 AppCompatCheckBox ,而是CheckBox
AppCompatCheckBox
应该有用 -
AppCompatCheckBox checkBox = new AppCompatCheckBox(context);
旁注:
在Android support v22.1 library
之前,如果您动态创建组件,则他们不会选择材料设计主题。
但是从v22.1 support library
及以上,这是有效的。您应该使用CheckBox
中的support library
,它将使用材料主题,该主题用于通过XML
创建的组件。