我有一個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