我看到帖子說FrameLayout是另一種選擇,我應該使用邊距來定位事物(這讓我覺得很不直觀,但好吧......如果它有效,我會接受它)。但是,我無法使其工作,所以我正在尋求幫助。Android中的AbsoluteLayout的替代方法是什麼?
這裏是我的代碼
FrameLayout layout = new FrameLayout(this);
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
Button btn = new Button(this);
btn.setBackgroundResource(R.drawable.btn);
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.setMargins(100,100,100,100);
btn.setLayoutParams(lp); //i've tried with and without this line, no change
layout.addView(btn , lp);
按鈕處於0,0繪製無論我做什麼。當我將lp的LayoutParam改爲FILL_PARENT時,這個按鈕被拉伸以佔據整個屏幕(這是有道理的)。
如何讓它在屏幕上的其他地方繪製,而不管還有什麼?
一如既往,超前感激。
[編輯] 看來我的問題是不完全清楚(給出答案),所以......
在上面的代碼,目的是創建一個按鈕,將它傳遞給一個佈局,並有它在屏幕上畫100,100。
我意識到這一事實,這可能意味着不同的設備上的不同的事情。我確定。我只需要一種方法,以編程方式,並在運行時,將物品放置在特定位置。我不想依靠重力(或熱力學定律)。我只想指定一個位置並讓元素出現在那裏:)
我試了一下你的代碼,按鈕放在左上角的(100,100)處。也許這是一個在更高版本的android中修復的bug。 – hultqvist 2013-03-29 00:32:42
我剛剛發佈了一個可能在這種情況下感興趣的庫。 github.com/ManuelPeinado/ImageLayout – Manuel 2013-04-18 06:37:14