gpt4 book ai didi

android - 用 textviews 包裹布局

转载 作者:IT老高 更新时间:2023-10-28 23:23:55 26 4
gpt4 key购买 nike

我的布局如下所示:

<RelativeLayout>
<!--aligned parent top-->
</<RelativeLayout>
<FlowLayout>
<!--Should fill remaining space-->
</FlowLayout>
<RelativeLayout>
<!--aligned parent bottom-->
</<RelativeLayout>

我使用了 FlowLayout显示 TextView 列表(它可能包含 10-15 个 TextView )。因此,基于可用的空白屏幕空间,我想显示 TextView 的数量。例如,如果要在那里显示 15 个 TextView ,并且在大屏幕中有 10 个 TextView 的空间,我想显示 9 个 TextView 并在最后一个 TextView 中显示“+6”。在小屏幕空间中可能仅可用于 5 个 TextView ,因为我想在最后一个 TextView 中显示 4 个带有“+11”的 TextView 。为了清楚起见,这里是截图。如您所见,要显示的实际 TextView 数是 5。但显示的是 2,并添加了 +3。同样,根据可用的屏幕空间,我想在布局中添加 TextView 的数量。

如何以编程方式实现?

enter image description here

最佳答案

尝试在 for 循环中以编程方式将 TextViews 添加到 linearLayout 中,在该循环中添加每个 textView 后,获得可用的剩余宽度(可以使用 [ScreenWidth-(添加的 textviews 宽度的总和 + [no.of textviews * margin/padding for每个])]*)

如果宽度小于某个最小值(假设每个 TextView 至少需要 100 像素),则中断循环并添加计数指示 rune 本。

我能想到下面的代码,它可能不准确,只是为了告诉你我在想什么

int screenWidth = getScreenWidth();
int currentWidth=0;
int minimumWidthForAChildWithOffset = 100;//offset should include width of indicator
int childCount = 10;
int paddingForEachChild = 15;
for (int i = 0; i <childCount; i++) {
TextView label= getChildView();
parent.addView(label, i);
currentWidth += parent.getChildAt(i).getWidth() + paddingForEachChild;
if(i!=childCount-1/*ignore if this is the last item*/ && screenWidth-currentWidth<=minimumWidthForAChildWithOffset){
//add indicator label to layout here
break;
}
}

关于android - 用 textviews 包裹布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34013524/

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