我有一个HorizontalScrollView,它包含一个包含一些自定义视图的LinearLayout。现在,我通过这条线还是传统的儿童的大小(在孩子的构造函数):Android HorizontalScrollView儿童宽度
setLayoutParams(new LayoutParams(200, LayoutParams.FILL_PARENT));
我想要做的,是将组件的宽度设置为高度的30%本身,而不是实际的200像素。但我仍然需要“FILL_PARENT”的高度。
当我overrided的onMeasure梅索德,我tryed说:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
System.out.println(widthMeasureSpec + "/" + heightMeasureSpec);
}
但我得到的输出:
1073742024/1073742586
所以它看起来喜欢我不能在这里做了很多事情,仍然我没有很多信息:)
任何想法如何做的伎俩?
我确切的说,我在模拟器上测试(不知道这件事情)。
这应该是足够了:'@覆盖(int widthMeasureSpec,int heightMeasureSpec){ \t \t \t super.onMeasure(widthMeasureSpec,heightMeasureSpec); \t \t \t int height = getMeasuredHeight(); \t \t \t super.onMeasure(MeasureSpec.makeMeasureSpec(高度/ 3, \t \t \t \t \t MeasureSpec.EXACTLY),heightMeasureSpec); ''。 – Luksprog
完美地工作,谢谢! – user1534422