【发布时间】:2020-12-01 07:48:24
【问题描述】:
我有以下 GridLayout,它最多存储 6 个列:
<androidx.gridlayout.widget.GridLayout
android:id="@+id/pokemonTeambuilderSpritesLayout"
android:layout_width="match_parent"
android:layout_height="100dp"
app:columnCount="6"
app:rowCount="1"
app:useDefaultMargins="true" />
我在这里填充它:
List<Pokemon> pokemonList = pokemonTeam.getPokemonList();
for (Pokemon pokemon : pokemonList) {
CircularImageView ivPokemonSprite = new CircularImageView(mContext);
String pokemonId = pokemon.get_id();
int pokemonImageId = PokemonUtils.getPokemonSugimoriImageById(pokemonId, mContext);
Picasso.get().load(pokemonImageId).into(ivPokemonSprite);
GridLayout.LayoutParams layoutParams = new GridLayout.LayoutParams(
GridLayout.spec(GridLayout.UNDEFINED, 1f),
GridLayout.spec(GridLayout.UNDEFINED, 1f)
);
layoutParams.width = 0;
ivPokemonSprite.setLayoutParams(layoutParams);
holder.teamSpritesGridLayout.addView(ivPokemonSprite);
}
我目前的输出有 6 张图片是这样的:
有 3 张图片:
有 2 张图片:
我想要的输出是:
6 张图片:
对于 2 张图片:
对于 4 张图片:
我希望它从左到右统一添加它们,如果图像没有足够的空间来容纳自己,我希望它与其他图像“碰撞”而不是在它们之间留出边距(你可以见示例)。这就是我看到 GridLayoutManager 工作的方式。我怎样才能做到这一点?
【问题讨论】:
标签: android grid-layout android-gridlayout gridlayoutmanager