gpt4 book ai didi

Android:在运行时为 child 分配相同的高度

转载 作者:行者123 更新时间:2023-11-30 00:25:27 25 4
gpt4 key购买 nike

我需要设计一个布局,其中包含一张或多张卡片。问题是卡片的数量在运行时是已知的,我需要每张卡片的高度都与其他卡片完全相同。所以如果我有两张卡片,每张卡片的 weight 都是 0.5

此布局应在单击一张卡片时下推所有其他卡片。

如何实现?我应该开发自定义 View 吗?

更新

我试过 RecyclerView,我在 Adapter 中添加了以下内容

@Override
public void onBindViewHolder(CardViewHolder holder, int position) {
Card card = cards.get(position);
DisplayMetrics displayMetrics = new DisplayMetrics();
((AppCompatActivity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
holder.tenantId.setText(card.getTenantName());
holder.tenantUsername.setText(card.getUsername());
holder.containerTenant.setBackgroundColor(Color.RED);
holder.tenantLogo.setImageResource(card.getImgResource());

holder.itemView.getLayoutParams().height = (int) (displayMetrics.heightPixels / (cards.size() * 1.0f));
}

但它仍在向下插入第二张卡片,用户需要滚动才能看到第二张卡片。

最佳答案

您应该将卡片放在 LinearLayout 中并以编程方式设置权重。

float cardWeight = 1 / numOfCards;
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT,
cardWeight
);
CARD1.setLayoutParams(param);

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT,
cardWeight
);
CARD2.setLayoutParams(param);

LINEARPARENT.setWeightSum(1f);
LINEARPARENT.addView(CARD1);
LINEARPARENT.addView(CARD2);

关于下推,您可以将点击的卡片设置为 1f(或线性权重和)的权重,并移除其他卡片并在另一个布局上膨胀它们。

关于Android:在运行时为 child 分配相同的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45463823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com