我有一个 HorizontalScrollView,其中包含一个包含一些自定义 View 的 LinearLayout。现在,我通过这一行(在 child 的构造函数中)固定 child 的大小:
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
所以看起来我不能在这里做很多事情,但我仍然没有很多信息:)
知道怎么做吗?
我明确表示我正在模拟器上进行测试(不知道这是否重要)。
最佳答案
你可以做一些事情,比如获取屏幕的尺寸
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));
我可能误解了你的问题,我刚醒来 :) 让我知道它是否有效,或者你是否正在寻找其他东西
关于Android HorizontalScrollView 子宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12873145/