我制作像tab这样的东西。
我HorizontalScrollView
LinearLayout
,其中很少有视图。
我想根据屏幕大小(ScrollView或LinearLayout大小)更改视图的宽度
这样做:
if (view1.size+view2.size + ... + viewn.size < scrollView.size)
{
view1.setSize(scrollView.size/n);
view2.setSize(scrollView.size/n);
...
viewn.setSize(scrollView.size/n);
}
我尝试在onMeasure
中设置内容,但所有决定都是错误的。
答案 0 :(得分:2)
ScrollView的大小不确定,实际上取决于孩子的大小。
如果您想使用屏幕大小以及您希望在屏幕上显示多少孩子更有意义,可能会出现以下内容(未经测试):
int children_on_screen = 3;
int size = getWidthOfTheScreen();
for(int i=0;i<yourLinearLayout.getChildCount();i++) {
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) yourLinearLayout.getChildAt(i).getLayoutParams();
params.width = size / children_on_screen;
}
yourLinearLayout.requestLayout();