2012-03-05 50 views
0

我有一個關於Android中DialogPreference寬度的問題。根據DialogPreference的寬度,我設置文本字段的邊距,使其位置與搜索欄的拇指位置對齊。這在拖動拇指時正常工作。DialogPreference寬度

但是,當我顯示DialogPreference,寬度尚未設置,並始終爲0.因此,我的TextView的初始位置始終爲0,直到我第一次拖動搜索欄。

我無法找到一個合適的回調,在設置寬度時調用類(類似於onSizeChanged()會很好)。

有沒有可以使用的回調或竅門?

回答

0

該解決方案非常複雜。您必須創建自己的窗口小部件,這個窗口小部件必須在您的對話框佈局中使用。您在對話框首選項使用的佈局中使用此小部件而不是標準小部件。

然後,您將一個回調處理程序接口和回調處理程序添加到此新窗口小部件。之後,您可以重寫onDraw()並在調用super.onDraw()之前調用您的回調處理函數。

現在,當你實現回調監聽器在對話框愛好級別,並將其分配給這個小工具,你會得到的onDraw()回調。當調用此回調函數時,所有寬度和高度值都已設置,您可以使用它們。

我知道這是一個骯髒的黑客,但我沒有找到更好的。