0
我現在有這個UI結構:設置的LayoutParams不應用速度不夠快
Activity (ACT)
LinearLayout (LL)
HorizontalScrollView (HSV)
RelativeLayout (RL)
當我設置RL的佈局參數,他們沒有得到應用,直到後來,當它是爲時已晚。
var TotalWidth = GetNewWidth() // eg returns 1000...
var lp = this.LayoutRoot.LayoutParameters;
lp.Width = TotalWidth;
this.LayoutRoot.LayoutParameters = lp;
// this.LayoutRoot.LayoutParameters.Width == 1000
// this.LayoutRoot.Width == 0
this.LayoutRoot.RequestLayout();
this.LayoutRoot.ForceLayout();
this.RequestLayout();
this.ForceLayout();
// this.LayoutRoot.LayoutParameters.Width == 1000
// this.LayoutRoot.Width == 0
這不是一個問題,如果我不使用的寬度,但我:) 我想這樣做:
this.ScrollTo(500, 0);
這有沒有效果的總寬度HSV孩子目前0
但是,如果我這樣做:
this.PostDelayed(() => this.ScrollTo((int) percent, 0), 500);
它的工作原理,經過500ms的德爾唉。
HSV是一個派生類,它管理着它的內容本身 - 只是一個空的RL,我用它來設置寬度,這樣我就可以有一個巨大的區域來繪製圖像。排序一個巨大的滾動畫布。 另外,我想要做的是在HSV的OnSizeChanged重寫成員。我想這樣做,如果控件重新調整大小,控件將滾動到相同的位置。寬度取決於高度(保持高寬比)
我希望我的假設是錯誤的。事實並非如此。謝謝。 – Matthew