如何将视图大小设置为父级大小的百分比?

时间:2013-10-09 14:08:38

标签: android view scrollview

我制作像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中设置内容,但所有决定都是错误的。

1 个答案:

答案 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();