如何设置视图大小,例如父大小的百分比



我做了类似tab的东西。我有HorizontalScrollView,里面有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中设置一些东西,但所有的决定都是错误的。

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

最新更新