日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

android动态居中布局,Android动态添加布局的两种方式

發(fā)布時(shí)間:2024/7/19 Android 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android动态居中布局,Android动态添加布局的两种方式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

釋放雙眼,帶上耳機(jī),聽(tīng)聽(tīng)看~!

前言

大多數(shù)時(shí)候我們布局都是用xml來(lái)布局的,但有些時(shí)候也是會(huì)用到動(dòng)態(tài)布局的,尤其是在一些大項(xiàng)目中,動(dòng)態(tài)布局更是體現(xiàn)的淋漓盡致。

所以今天我們就來(lái)學(xué)習(xí)一些動(dòng)態(tài)加添布局的兩種方式,分別是

動(dòng)態(tài)添加xml布局

另外寫(xiě)一個(gè)xml布局,然后通過(guò)java的方式讓他加載他主布局上

動(dòng)態(tài)添加java布局

通過(guò)java寫(xiě)出一個(gè)布局,然后再通過(guò)java的方式讓他加載他主布局上

一、動(dòng)態(tài)添加xml布局

步驟

第一步構(gòu)造容器

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(

LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

第二步構(gòu)造xml文件

這里我們就主布局添加個(gè)button就可以了,用來(lái)點(diǎn)擊加載xml布局,被添加布局里面我就寫(xiě)一個(gè)TextView,由于比較簡(jiǎn)單這里就不貼了

第三步構(gòu)造LayoutInflater

提到addview,首先要了解一下LayoutInflater類(lèi)。這個(gè)類(lèi)最主要的功能就是實(shí)現(xiàn)將xml表述的layout轉(zhuǎn)化為View的功能。為了便于理解,我們可以將它與findViewById()作一比較,二者都是實(shí)例化某一對(duì)象,不同的是findViewById()是找xml布局文件下的具體widget控件實(shí)例化,而LayoutInflater找res/layout/下的xml布局文件來(lái)實(shí)例化的。

而LayoutInflater有三種方式

LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);或

LayoutInflater inflater = LayoutInflater.from(Activity.this);或

LayoutInflater inflater = getLayoutInflater();

這三種方法本質(zhì)是相同的。

第四步inflate()加載布局

用LayoutInflater.inflate() 將LayOut文件轉(zhuǎn)化成VIew。

View view = inflater.inflate(R.layout.block_gym_album_list_item, null);

this.addContentView(view,lp);

關(guān)于第一步顯示布局的詳細(xì)介紹

改變布局主要是通過(guò)改變LayoutParams來(lái)實(shí)現(xiàn)的,LayoutParams繼承于Android.View.ViewGroup.LayoutParams。它相當(dāng)于一個(gè)Layout的信息包,封裝了Layout的位置、高、寬等信息。需要注意的是,需要注意到要修改的View的父容器是什么類(lèi)型的,FrameLayout,LinearLayout,RelativeLayout等,因?yàn)椴煌?lèi)型的LayoutParams是不同的。

上述代碼與以下xml布局代碼作用相同:

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"/>

改變布局位置

addRule可傳入不同的布局參數(shù),如addRule(RelativeLayout.BELOW, R.id.XXX); 表示該View位于XXX下面。常用的布局參數(shù)有以下:

layoutParams.alignWithParent = true 如果對(duì)應(yīng)的兄弟元素找不到的話就以父元素做參照物

RelativeLayout.CENTER_HORIZONTAL 在父控件中水平居中

RelativeLayout.CENTER_VERTICAL 在父控件中垂直居中

RelativeLayout.CENTER_IN_PARENT 相對(duì)于父控件完全居中

RelativeLayout.ALIGN_PARENT_BOTTOM 緊貼父控件的下邊緣

RelativeLayout.ALIGN_PARENT_TOP 緊貼父控件的上邊緣

RelativeLayout.ALIGN_PARENT_LEFT緊貼父控件的左邊邊緣

RelativeLayout.ALIGN_PARENT_RIGHT 緊貼父控件的右邊緣

RelativeLayout.ABOVE 在某元素的上方 需要第二個(gè)參數(shù)為某元素的ID

RelativeLayout.BELOW 在某元素的下方 需要第二個(gè)參數(shù)為某元素的ID

RelativeLayout.LEFT_OF 在某元素的左邊 需要第二個(gè)參數(shù)為某元素的ID

RelativeLayout.RIGHT_OF 在某元素的右邊 需要第二個(gè)參數(shù)為 某元素的ID

RelativeLayout.ALIGN_TOP 本元素的上邊緣和某元素的的上邊緣對(duì)齊 需要第二個(gè)參數(shù)為某元素的ID

RelativeLayout.ALIGN_BOTTOM 本元素的上邊緣和某元素的的下邊緣對(duì)齊 需要第二個(gè)參數(shù)為某元素的ID

RelativeLayout.ALIGN_LEFT 本元素的上邊緣和某元素的的左邊緣對(duì)齊 需要第二個(gè)參數(shù)為某元素的ID

RelativeLayout.ALIGN_RIGHT 本元素的上邊緣和某元素的的右邊緣對(duì)齊 需要第二個(gè)參數(shù)為某元素的ID

RelativeLayout.ALIGN_BASELINE 本元素的基線和某元素的的基線對(duì)齊 需要第二個(gè)參數(shù)為某元素的ID

二、動(dòng)態(tài)添加java布局

我們這里還是以TextView為例,其實(shí)動(dòng)態(tài)添加java布局和xml布局有異曲同工之處,無(wú)非就是用java的方式寫(xiě)出控件,然后添加進(jìn)布局里

第一步構(gòu)造容器

和上面xml布局的一樣,所以這里就不貼了

第二步構(gòu)造控件布局框架

其實(shí)和xml的第二步也是一樣的,只不過(guò)xml已經(jīng)寫(xiě)好了最外層的布局,所以我們也要用java寫(xiě)出一個(gè)布局,好在里面放控件

LinearLayout view = new LinearLayout(this);

view.setLayoutParams(lp);//設(shè)置布局參數(shù)

view.setOrientation(LinearLayout.HORIZONTAL);// 設(shè)置子View的Linearlayout// 為垂直方向布局

//定義子View中兩個(gè)元素的布局

ViewGroup.LayoutParams vlp = new ViewGroup.LayoutParams(

ViewGroup.LayoutParams.WRAP_CONTENT,

ViewGroup.LayoutParams.WRAP_CONTENT);

第三步添加控件

其實(shí)這一步也沒(méi)有什么好講的,就是xml添加控件的方式改成java添加

TextView tv1 = new TextView(this);

tv1.setLayoutParams(vlp);//設(shè)置TextView的布局

tv1.setText("姓名:");

第四部將控件添加至容器

view.addView(tv1);//將TextView 添加到子View 中

總結(jié)

以上是生活随笔為你收集整理的android动态居中布局,Android动态添加布局的两种方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。