我正在創建一個自定義視圖,該視圖的範圍爲LinearLayout
。我在線性佈局中添加了一些形狀,目前它們之間具有固定的空間值。我通過定義LayoutParams
並設置邊距來在這些形狀之間創建空間。如何知道小部件寬度是否設置爲wrap_content
我想要做的是將它們跨越整個屏幕的一個相等的空間,以便它們填充它,但只有當視圖的寬度設置爲match_parent
或fill_parent
時。如果它設置爲wrap_content
那麼應該設置原始的空間固定值。
我試着這樣做:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
spaceBetweenShapesPixels = (parentWidth - shapeWidth * numberOfShapes)/numberOfShapess;
}
但是,這種方法好像是叫兩次 - 一次父的寬度和高度,之後用於View的本身時,它的視圖本身,空間得到0值。
那麼,如何才使這個邏輯:
if(width is wrap_content)
{
space = 10;
}
else
{
space = (parentWidth - shapeWidth * numberOfShapes)/numberOfShapess;
}
我不明白它是如何做適合於我,我的問題寫道,僞代碼模板。基於模式的條件是什麼意味着用戶已將寬度設置爲wrap_content? –