Android Horizo​​ntalScrollView子宽度

时间:2012-10-13 12:33:59

标签: android width children horizontalscrollview

我有一个Horizo​​ntalScrollView,它包含一个包含一些自定义视图的LinearLayout。现在,我通过这一行(在孩子的构造函数中)修复子项的大小:

setLayoutParams(new LayoutParams(200, LayoutParams.FILL_PARENT));

我想要做的是将组件的宽度设置为自身高度的30%而不是实际的200px。但我仍需要“FILL_PARENT”的高度。

当我重写onMeasure方法时,我尝试了:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    System.out.println(widthMeasureSpec + "/" + heightMeasureSpec);
}

但我获得了输出:

1073742024/1073742586

看起来好像我不能在这里做很多事情,但我还没有很多信息:)

知道如何做到这一点吗?

我确切地说我正在模拟器上进行测试(不知道是否有问题)。

1 个答案:

答案 0 :(得分:0)

您可以执行类似于获取屏幕尺寸的内容

DisplayMetrics display = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics( display );
int screenW = display.widthPixels;
int screenH = display.heightPixels;

并且如果要取出的组件的高度为0.3,则是整个屏幕的高度,然后执行以下操作:

setLayoutParams(new LayoutParams((int)(screenH*0.3), LayoutParams.FILL_PARENT));

我可能误解了你的问题,我刚刚醒来:)让我知道它是否有用或者你是否正在寻找别的东西