0

我做了类似标签的东西。我有HorizontalScrollViewLinearLayout很少的观点。我想根据屏幕大小(ScrollView 或 LinearLayout 大小)更改 View 的宽度

去做这个:

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,但所有的决定都是错误的。

4

1 回答 1

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();
于 2013-10-09T14:15:05.837 回答