Android動(dòng)態(tài)布局小結(jié)
android動(dòng)態(tài)布局相比靜態(tài)布局,動(dòng)態(tài)布局不用再將xml轉(zhuǎn)變了布局代碼,提高了一定的效率,當(dāng)然可以忽略不記。動(dòng)態(tài)布局主要是比較靈活,可以很快的在代碼中直接修改布局,并直接使用控件進(jìn)行業(yè)務(wù)邏輯開(kāi)發(fā)。但代碼量通常比較大,維護(hù)沒(méi)有靜態(tài)布局方便。不過(guò),作為一個(gè)android開(kāi)發(fā)人員,掌握一定的動(dòng)態(tài)布局技巧,有時(shí)在工作中也是可以提高一定的代碼開(kāi)發(fā)效率。
在動(dòng)態(tài)布局中,要想實(shí)現(xiàn)一個(gè)布局,一般是先創(chuàng)建五大布局的對(duì)象。然后對(duì)這些對(duì)象進(jìn)行屬性設(shè)置,之后再向里面添加子布局或控件。
以RelativeLayout為例。
RelativeLayout mLayout = new RelativeLayout(); //設(shè)置RelativeLayout的子控件屬性對(duì)象,并設(shè)置其尺寸樣式。每個(gè)GroupView中都有一個(gè)LayoutPrams,都是用來(lái)給子控件設(shè)置發(fā)生的。 RelativeLayout.LayoutPrams params = new RelativeLayout.LayoutPrams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); //增加 子控件 ImageView iv = new ImageView(getActivity()); iv.setImageResource(R.drawable.tab_icon_conversation_normal); //設(shè)置子控件在RealtiveLayout中的位置屬性。 params.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); //給iv 增加屬性 //將iv,增加到mLayout中 mLayout .addView(iv, params);
從最后一句,可以看出來(lái),params對(duì)象引用設(shè)置的屬性都是作用有ImageView這個(gè)子控件上的,然后把iv與params一塊加入到RealtiveLayout中去。
整理android動(dòng)態(tài)布局方法總結(jié)
//絕對(duì)布局
AbsoluteLayout abslayout=new AbsoluteLayout (this); setContentView(abslayout); Button btn1 = new Button(this); btn1.setText(”this is a button”); btn1.setId(1); AbsoluteLayout.LayoutParams lp1 = new AbsoluteLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0,100); abslayout.addView(btn1, lp1);
//相對(duì)布局
RelativeLayout relativeLayout = new RelativeLayout(this); setContentView(relativeLayout); AbsoluteLayout abslayout=new AbsoluteLayout (this); RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp1.addRule(RelativeLayout.ALIGN_PARENT_TOP); lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE); relativeLayout.addView(abslayout ,lp1);
//線(xiàn)性布局
LinearLayout ll = new LinearLayout(this); EditText et = new EditText(); ll.addView(et); //動(dòng)態(tài)添加布局的方法1. LinearLayout ll = (LinearLayout)this.getLayoutInflater().inflate(R.layout.main1,null); setContentView(ll); LinearLayout ll2 = (LinearLayout)this.getLayoutInflater().inflate(R.layout.main2,ll); //這樣 main2 作為 main1的子布局 加到了 main1的 根節(jié)點(diǎn)下 //動(dòng)態(tài)添加布局的方法2 addView. LinearLayout ll = (LinearLayout)this.getLayoutInflater().inflate(R.layout.main1,null); setContentView(ll); LinearLayout ll2 = (LinearLayout)this.getLayoutInflater().inflate(R.layout.main2,null); ll.addView(ll2);
- android動(dòng)態(tài)布局之動(dòng)態(tài)加入TextView和ListView的方法
- 基于Android在布局中動(dòng)態(tài)添加view的兩種方法(總結(jié))
- Android 動(dòng)態(tài)改變布局實(shí)例詳解
- Android編程動(dòng)態(tài)加載布局實(shí)例詳解【附demo源碼】
- android用java動(dòng)態(tài)增添刪除修改布局
- Android動(dòng)態(tài)加載布局
- Android動(dòng)態(tài)添加設(shè)置布局與控件的方法
- android動(dòng)態(tài)加載布局文件示例
- Android動(dòng)態(tài)布局使用詳解
相關(guān)文章
Android編程實(shí)現(xiàn)TextView部分顏色變動(dòng)的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)TextView部分顏色變動(dòng)的方法,涉及Android針對(duì)TextView樣式操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
Android之高德地圖定位SDK集成及地圖功能實(shí)現(xiàn)
本文主要介紹了Android中高德地圖定位SDK集成及地圖功能的實(shí)現(xiàn)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04
Android 多國(guó)語(yǔ)言value文件夾命名的方法
這篇文章主要介紹了Android 多國(guó)語(yǔ)言value文件夾命名的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
Flutter輸入框TextField屬性及監(jiān)聽(tīng)事件介紹
這篇文章主要介紹了Flutter輸入框TextField屬性及監(jiān)聽(tīng)事件介紹,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2021-11-11
Android實(shí)戰(zhàn)教程第八篇之短信備份
這篇文章主要為大家詳細(xì)介紹了Android實(shí)戰(zhàn)教程第八篇之短信備份的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
Android實(shí)現(xiàn)Tab切換界面功能詳解
這篇文章主要為大家詳細(xì)介紹了Android如何實(shí)現(xiàn)Tab切換界面的功能,以及對(duì)Tab變化事件進(jìn)行監(jiān)聽(tīng)。文中示例代碼講解詳細(xì),感興趣的可以了解一下2022-05-05
Android錄制語(yǔ)音文件wav轉(zhuǎn)mp3的方法示例
這篇文章主要介紹了Android錄制語(yǔ)音文件wav轉(zhuǎn)mp3的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
Android啟動(dòng)初始化方案App StartUp的應(yīng)用詳解
這篇文章主要介紹了Android啟動(dòng)初始化方案App StartUp的使用方法,StartUp是為了App的啟動(dòng)提供的一套簡(jiǎn)單、高效的初始化方案,下面我們來(lái)詳細(xì)了解2022-09-09

