亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問如何以編程方式向視圖添加視圖

請問如何以編程方式向視圖添加視圖

HUWWW 2019-10-22 17:12:37
如何以編程方式向視圖添加視圖假設我有一個LinearLayout,我想在我的程序中從Java代碼中添加一個視圖。這是用什么方法做的?我并不是在問XML是如何實現的,我知道XML是如何實現的,而是我如何按照這個示例代碼的思路來做一些事情呢?(One View).add(Another View)就像揮桿一樣。
查看完整描述

3 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

呼叫addView這是正確的答案,但你需要做更多的事情才能讓它發揮作用。

如果通過構造函數創建視圖(例如,Button myButton = new Button();),你需要打電話setLayoutParams在新構造的視圖上,在將新構造的子視圖添加到父視圖之前,傳入父視圖的LayoutParams內部類的實例。

例如,您可能在您的onCreate()函數假設您的linearLayout有id。R.id.main:

LinearLayout myLayout = findViewById(R.id.main);Button myButton = new Button(this);myButton.setLayoutParams(new LinearLayout.LayoutParams(
                                     LinearLayout.LayoutParams.MATCH_PARENT,
                                     LinearLayout.LayoutParams.MATCH_PARENT));myLayout.addView(myButton);

確保設置LayoutParams很重要。每個視圖至少需要一個布局寬度和一個布局高度參數。同時,獲得正確的內部類也很重要。在我發現沒有將TableRow.LayoutParams的實例傳遞到子視圖的setLayoutParams之前,我很難讓視圖添加到TableRow中以正確顯示。




查看完整回答
反對 回復 2019-10-23
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

雖然為時已晚,但這可能會幫助某人:)以編程方式添加視圖,請嘗試如下


LinearLayout rlmain = new LinearLayout(this);      

LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.FILL_PARENT);          

LinearLayout   ll1 = new LinearLayout (this);


ImageView iv = new ImageView(this);

iv.setImageResource(R.drawable.logo);              

LinearLayout .LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);


iv.setLayoutParams(lp);

ll1.addView(iv);

rlmain.addView(ll1);              

setContentView(rlmain, llp);

這將以編程方式創建整個視圖。您可以添加相同數量的視圖。希望這能幫上忙。*)




查看完整回答
反對 回復 2019-10-23
  • 3 回答
  • 0 關注
  • 279 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號