程式碼設定RelativeLayout相對位置設定
在XML中,RelativeLayout相對位置使用android:layout_toRightOf="@+id/view0"
來設定;程式碼中:
ImageView image = new ImageView(context);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.RIGHT_OF, text.getId());
rl.addView(image, lp);
需要注意,相對的控制元件如果是new出來的TextView text = new TextView(context);
,需要呼叫setId()
設定ID,text.setId(Integer.MAX_VALUE - 1000);
,否則不生效。
2016-12-02發現了點問題
之前圖片相對在文字右邊,高度差不多,沒看出問題,今天換了個長圖片就發現高度不是居中了。
調了一下,貼一下正確程式碼
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="90dp">
<TextView
android:id="@+id/ddd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:paddingRight="5dp"
android:text="測試"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/ddd"
android:layout_centerInParent="true"
android:text="你\n好\n啊"/>
</RelativeLayout>
TextView text = new TextView(context);
text.setId(Integer.MAX_VALUE - 1000);
text.setTextSize(16);
text.setText("文字");
text.setPadding(0,0,3,0);
text.setTextColor(ContextCompat.getColorStateList(context,R.color.a));
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
addView(text, params);
ImageView imageView = new ImageView(context);
imageView.setImageDrawable(isUp ? drawableUp :drawableDown);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.CENTER_IN_PARENT);
lp.addRule(RelativeLayout.RIGHT_OF , text.getId());
addView(imageView, lp);
因為是居中,所以不管是在XML還是在程式碼中,第一個控制元件一定要寫android:layout_centerInParent這個屬性,第二個可以android:layout_centerVertical="true"
或android:layout_centerInParent="true"
,也要寫上,否則無效。程式碼中第二個的addRule()方法,兩個記得要分開寫,剛開始寫一塊lp.addRule(RelativeLayout.CENTER_IN_PARENT|RelativeLayout.RIGHT_OF , text.getId());
顯示出來很奇怪。效果如圖:
相關文章
- 小程式許可權設定(位置)
- Android 相對佈局RelativeLayout 程式碼示例Android
- idea中設定maven預設位置IdeaMaven
- RelativeLayout相對佈局
- GoLand 相關設定GoLand
- JavaScript設定背景圖片位置JavaScript
- 設定/獲得游標位置
- Android Layout 之 RelativeLayout,程式碼實現相對佈局Android
- SAP basis 相關設定
- SAP basis 相關設定
- QT設定標籤顯示位置QT
- Pycharm程式碼塊的設定PyCharm
- input 獲取游標位置與設定游標位置
- Hive優化相關設定Hive優化
- RecyclerView滾動位置,滾動速度設定View
- CSS設定背景圖片程式碼CSS
- android中設定代理程式碼Android
- UIButton設定image上下左右位置 swiftUISwift
- Mac開發相關設定操作Mac
- CSS設定div邊框演示程式碼CSS
- rubymine設定自定義快捷程式碼片段
- git 設定代理下載 webrtc程式碼GitWebC程式
- eclipse設定程式碼自動提示Eclipse
- 設定placeholder字型顏色程式碼
- Android 桌布設定程式碼 詳解Android
- 程式碼規範設定常見英文
- redis設定密碼Redis密碼
- win10設定密碼在哪裡_win10設定開機密碼怎麼設定Win10密碼
- css相鄰選擇器設定li元素外邊距程式碼例項CSS
- 電腦鎖屏密碼怎麼設定 win10電腦休眠密碼設定方法設定密碼Win10
- java程式碼實現對excel加密、解密(設定或去除開啟密碼)JavaExcel加密解密密碼
- 截圖曝光顯示位置正在測試字型設定與Windows系統設定的整合Windows
- 遊戲設計製作中對鎖定設定的應用(轉)遊戲設計
- Xamarin.Forms的相對佈局RelativeLayoutORM
- js給函式設定預設值程式碼例項JS函式
- 如何實現text起始位置設定背景色
- jQuery實現的設定滾動條的位置jQuery
- OracleRAC新增asm磁碟組並設定歸檔位置OracleASM