Android開發:LayoutParams的用法
原文地址:http://www.cnblogs.com/shaweng/archive/2012/07/10/2585134.html
LayoutParams繼承於Android.View.ViewGroup.LayoutParams.
LayoutParams相當於一個Layout的資訊包,它封裝了Layout的位置、高、寬等資訊。假設在螢幕上一塊區域是由一個Layout佔領的,如果將一個View新增到一個Layout中,最好告訴Layout使用者期望的佈局方式,也就是將一個認可的layoutParams傳遞進去。
可以這樣去形容LayoutParams,在象棋的棋盤上,每個棋子都佔據一個位置,也就是每個棋子都有一個位置的資訊,如這個棋子在4行4列,這裡的“4行4列”就是棋子的LayoutParams。
但LayoutParams類也只是簡單的描述了寬高,寬和高都可以設定成三種值:
1,一個確定的值;
2,FILL_PARENT,即填滿(和父容器一樣大小);
3,WRAP_CONTENT,即包裹住元件就好。
在JAVA中動態構建的佈局,常常這樣寫:
setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
上面這一句話其實是子對父的,也就是說,父佈局下的子控制元件要設定這句話。
因為佈局很多,雖然都繼承至ViewGroup但是各個佈局還是有很大的不同。
很顯然上面這句應該這樣寫才算準確:
setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,TableRow.LayoutParams.FILL_PARENT));
這表示這個子控制元件的父佈局是一個TableRow , 這樣的LayoutParams 太多,所以應明確指明。
下面分別說下兩個常用到佈局:
1. FrameLayout下動態設定子控制元件居中,動態用JAVA程式碼要這樣實現:
FrameLayout.LayoutParams lytp = new FrameLayout.LayoutParams(80,LayoutParams.WRAP_CONTENT);
lytp .gravity = Gravity.CENTER;
btn.setLayoutParams(lytp);
2. RelativeLayout下動態設定子控制元件居中:
RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
btn1.setLayoutParams(lp);
相關文章
- java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widgJavaASTExceptionAndroid
- Android Toolbar的用法Android
- Android開源庫——EventBus高階用法Android
- Android shape的用法Android
- Android開發必看-快速提高 Android 開發效率的 Web 工具AndroidWeb
- JavaWeb開發之 / 斜槓用法JavaWeb
- ReactiveCocoa開發中常見用法React
- Zsh 開發指南(第十二篇 [[ ]] 的用法)
- Java開發和Android開發的區別JavaAndroid
- Android Java開發中一些唬人的常用關鍵字用法,持續更新中。。。AndroidJava
- Android開發Android
- android aapt用法AndroidAPT
- android:ListView 的簡單用法AndroidView
- android中sharedPreferences的用法Android
- android的listview的詳細用法AndroidView
- Android中的Selector的用法Android
- Android 中的DisplayMetrics類的用法Android
- 【Android】Android的快速開發框架AfinalAndroid框架
- android移動開發簡單的開發例項Android移動開發
- Android和js的混合開發AndroidJS
- android的快速開發框架集合Android框架
- Android開發之奇怪的FragmentAndroidFragment
- Android Notification 用法的4種形式Android
- Android ORMLite 框架的入門用法AndroidORM框架
- Android中的ANR用法詳解Android
- Android 開發感想Android
- Android開發技巧Android
- JavaWeb開發之load-on-startup用法JavaWeb
- 移動端開發viewport用法詳解View
- [Android開發]Mac下NDK開發(JNI)AndroidMac
- Android開發人員必備的10個開發工具Android
- android開發 之 Bolts-AndroidAndroid
- Android API開發之OpenGL開發之Android OpenGL STL詳解AndroidAPI
- Zsh 開發指南(第十六篇 alias 和 eval 的用法)
- Java開發筆記(五十五)關鍵字static的用法Java筆記
- xml方式的 android的 tabhost用法例項XMLAndroid
- Android的開發環境搭建教程Android開發環境
- Android 開發中的SSL pinningAndroid