Ich verwende diese flexbox layout. Ich bin dabei, ein Verhalten zu bekommen. Ich möchte, dass Elemente in der nächsten Zeile angezeigt werden, wenn dynamisch hinzugefügte Elemente nicht in FlexboxLayout
passen.android: flexbox nicht umhüllen Inhalt
Flexbox Version: 0.2.2
Unten ist mein XML-Code:
<com.google.android.flexbox.FlexboxLayout
android:id="@+id/fbl_choose_category_upload"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/margin_16"
android:paddingLeft="@dimen/padding_16"
android:paddingRight="@dimen/padding_16"
app:alignContent="space_between"
app:alignItems="flex_start"
app:flexDirection="row"
app:flexWrap="wrap"
app:justifyContent="space_between">
</com.google.android.flexbox.FlexboxLayout>
Mein Java-Code:
private void generateCategories(UserCategoryListResponse userCategoryListResponse) {
for (UserCategoryListResponse.Datum data : userCategoryListResponse.getData()) {
mFlexboxLayout.addView(getCategoryRadioButton(data));
}
}
private RadioButton getCategoryRadioButton(UserCategoryListResponse.Datum data) {
RadioButton radioButton = new RadioButton(this);
radioButton.setId(Integer.parseInt(data.getCategoryId()));
radioButton.setBackgroundResource(R.drawable.selector_choose_category);
radioButton.setButtonDrawable(null);
radioButton.setPadding(DisplayUtils.pxToDp(this, 16), DisplayUtils.pxToDp(this, 16), DisplayUtils.pxToDp(this, 16), DisplayUtils.pxToDp(this, 16));
radioButton.setText(data.getCategoryName());
radioButton.setTypeface(radioButton.getTypeface(), Typeface.BOLD);
radioButton.setEnabled(data.getIsFree().equals("1"));
radioButton.setOnCheckedChangeListener(this);
return radioButton;
}
Aber eigentlich das, was passiert ist, Flexbox den Inhalt schrumpft. Das erwartete Ergebnis war, dass, wenn nur drei Kategorien nur als erstes eingefügt werden könnten, die nächsten Elemente in der nächsten Zeile erscheinen sollten.
Wenn mir jemand dabei helfen kann.
Ja, das könnte meine alternative Lösung sein. –